Could you explain how it treats its path or change it for debug.traceback()?

(This message as an example, with https://github.com/ZwerOxotnik/zk-lib and https://github.com/ClaudeMetz/AssemblyAnalyst/blob/master/modfiles/data.pho )
log(debug.traceback())
stack traceback:
__zk-lib__/experimental/lazyAPI.lua:1161: in function 'get_current_mod'
__zk-lib__/experimental/lazyAPI.lua:1058: in function 'extend'
data.pho:3: in main chunk
(...tail calls...)

I expected to see __assemblyanalyst__/data etc.
I don't really understand why it has such path in the traceback now.

@JanSharp (this ping to ensure you got a ping at least once)

That's because you can choose to put whatever you want as the "source" name of a function into Lua bytecode. Phobos 0.1.x is currently tedious to use/setup and it seems like Therenas didn't set it up to add the mod name prefix to the source name, which would be done by adding --source-name "@__assemblyanalyst__/?" when compiling using Phobos.
This should be less of an issue once build profiles are a thing and I can provide templates for Factorio mods, unfortunately it's taking its time.
I'm curious how exactly you encountered this though, mostly to determine if it's worth bothering Therenas asking for a recompile for that ;)

I'm curious how exactly you encountered this though

It crashed my mod, because my mod relies on `debug.traceback()`

--source-name "@__assemblyanalyst__/?"

Well, how about checking name in info.json for major files like data.lua`  etc?

It crashed my mod, because my mod relies on debug.traceback()

A production mod relying on the debug library and debug symbols isn't great. However in order to prevent these issues from happening again I'd suggest handling all possible debug symbols, since like I said anything could be in there, Phobos is probably just the first tool that enables you to do it.
I wouldn't use traceback because its output is not machine readable, it's human readable. Looking at Lua source it's using short_src, which makes it hard to tell where the code came from. Specifically it makes it impossible to distinguish between file name sources or literal "labeled" sources (this code converts source into short_src).
So my proposal is to use get_info instead, the only downside is that caching is difficult/impossible.
But I've gone ahead and implemented it:
---transcribed from lauxlib.c:101: countlevels
local function count_levels()
  local li = 1
  local le = 1
  -- find an upper bound
  while debug.getinfo(le, "t") do
    li = le
    le = le * 2
  end
  -- do a binary search
  while li < le do
    local m = math.floor((li + le) / 2)
    if debug.getinfo(m, "t") then
      li = m + 1
    else
      le = m
    end
  end
  return le - 2 -- idk why this needs a -2 instead of -1, but it do
end

---gets the first (entry) function on the stack that isn't a C function and isn't a tail call
---@param what infowhat? @ must contain "S" and "t". default: "St".
---Once an appropriate function is found it returns the table from getinfo using this `what`
---@return debuginfo @ I think this can be nil if every single call was a tail call from the beginning,
---including the call to this function. So basically never
local function get_first_lua_func_info(what)
  what = what or "St"
  local level = count_levels()
  while true do
    local info = debug.getinfo(level, what)
    if not info.istailcall and info.what ~= "C" then
      return info
    end
    level = level - 1
    -- level 0 will always be the getinfo C function itself, no need to check it, just return
    if level == 0 then break end
  end
end

---@return 1|2|3|4 @ 1: data, 2: data-updates, 3: data-final-fixes, 4: unknown
local function get_stage()
  local info = get_first_lua_func_info()
  -- must start with an @ which indicates that it is a file name
  if not info.source:find("^@") then
    return 4
  end

  -- %f[^/\0] is a frontier pattern matching anywhere right past a / or at the beginning of the string
  -- extra non escaped dot at the end to make sure the file has any extension
  if info.source:find("%f[^/\0]data%..") then
    return 1
  elseif info.source:find("%f[^/\0]data%-updates%..") then
    return 2
  elseif info.source:find("%f[^/\0]data%-final%-fixes%..") then
    return 3
  else
    return 4
  end
end

---@return string @ `"?"` if it couldn't find a mod name
local function get_current_mod()
  local info = get_first_lua_func_info()
  -- spaces in mod names for legacy support
  return info.source:match("^@__([a-zA-Z0-9 _-]-)__") or "?"
end

And lastly, I will talk with Therenas about it, it shouldn't take much time.

Well, how about checking name in info.json for major files like data.lua etc?

This is something I thought of for a Factorio build profile template. Which means it wouldn't always do that, because Phobos isn't made just for Factorio. This also means that right now in 0.1.x it's not viable because it would still require the user to provide some command line argument telling it "hey this is for Factorio", and it would introduce way too many edge cases, mostly revolving around finding the info.json file.

It didn't work for assemblyanalyst properly, I'll check again and more (a bit) later.
stack traceback:
__zk-lib__/experimental/lazyAPI.lua:1214: in function 'get_current_mod'
__zk-lib__/experimental/lazyAPI.lua:1055: in function 'extend'
data.pho:3: in main chunk
(...tail calls...)

{
 istailcall = false,
 lastlinedefined = 1078,
 linedefined = 1029,
 short_src = "__zk-lib__/experimental/lazyAPI.lua",
 source =<EMAIL_ADDRESS> what = "Lua"
}

However, return le - 1 gives this:
{
  istailcall = true,
  lastlinedefined = 0,
  linedefined = 0,
  short_src = "data.pho",
  source =<EMAIL_ADDRESS>  what = "main"
}

huh, I guess I must have messed something up when testing. If -1 works then that's good

Um, I don't think so, because it means there are 2 cases because of precompiled chunks and not precompiled chunks. However, I'm not sure how to distinguish it with this method yet/still.

I'll check it again.

Hm, good news, it'll return nil with `return le - 1 for not precompiled chunks

alright so I figured out why the extra -1 was needed, it's because count_levels is also a function on the stack, which means as soon as it returns there's one function less.
However I wasn't able to reproduce the exact behavior you were talking about, because what I'm testing is having a tail call in the main chunk vs not and it works. what you're calling a precompiled chunk is basically just a tail call in the main chunk, since that is what the generated Phobos "bytecode" file does.
In the process of testing this I've decided to actually think about and understand the binary search and I've changed it because what I've transcribed from Lua source doesn't make sense in my head. So just in case that was the issue, could you try with this now?:
  -- do a binary search
  while li < (le - 1) do
    local m = math.floor((li + le) / 2)
    if debug.getinfo(m, "t") then
      li = m
    else
      le = m
    end
  end
  return li - 1

Ah, yeah, that case didn't work for you, because it's a tail call.

No worries, keep me posted :)

Should I dump the whole info from all levels in both cases?

I suppose, it might help

@JanSharp, btw, if you have time, could explain/provide info about debug.getinfo? It seems like I looked in a wrong way.

The 2 places in the docs  to look is these:

https://www.lua.org/manual/5.2/manual.html#pdf-debug.getinfo
https://www.lua.org/manual/5.2/manual.html#lua_getinfo
it should explain everything but if you don't understand a part feel free to ask

lazyAPI.get_current_mod = function()
	local le = 1
	while debug.getinfo(le, "St") do
	  le = le * 2
	end
	local all_St_info = {}
	for i=1, le do
		all_St_info[tostring(i)] = debug.getinfo(i, "St")
	end
	log(serpent.block(all_St_info))

   1.447 Loading mod assemblyanalyst 1.1.11 (data.lua)
   1.449 Script @__zk-lib__/experimental/lazyAPI.lua:1222: {
  ["1"] = {
    istailcall = false,
    lastlinedefined = 1247,
    linedefined = 1213,
    short_src = "__zk-lib__/experimental/lazyAPI.lua",
    source =<EMAIL_ADDRESS>    what = "Lua"
  },
  ["2"] = {
    istailcall = false,
    lastlinedefined = 1078,
    linedefined = 1029,
    short_src = "__zk-lib__/experimental/lazyAPI.lua",
    source =<EMAIL_ADDRESS>    what = "Lua"
  },
  ["3"] = {
    istailcall = true,
    lastlinedefined = 0,
    linedefined = 0,
    short_src = "data.pho",
    source =<EMAIL_ADDRESS>    what = "main"
  }
}
   1.450 Script @__zk-lib__/experimental/lazyAPI.lua:1231: stack traceback:
	__zk-lib__/experimental/lazyAPI.lua:1226: in function 'get_current_mod'
	__zk-lib__/experimental/lazyAPI.lua:1055: in function 'extend'
	data.pho:3: in main chunk
	(...tail calls...)

   1.425 Script @__zk-lib__/experimental/lazyAPI.lua:1222: {
  ["1"] = {
    istailcall = false,
    lastlinedefined = 1247,
    linedefined = 1213,
    short_src = "__zk-lib__/experimental/lazyAPI.lua",
    source =<EMAIL_ADDRESS>    what = "Lua"
  },
  ["2"] = {
    istailcall = false,
    lastlinedefined = 1078,
    linedefined = 1029,
    short_src = "__zk-lib__/experimental/lazyAPI.lua",
    source =<EMAIL_ADDRESS>    what = "Lua"
  },
  ["3"] = {
    istailcall = false,
    lastlinedefined = 0,
    linedefined = 0,
    short_src = "__zk-lib__/data.lua",
    source =<EMAIL_ADDRESS>    what = "main"
  }
}
   1.425 Script @__zk-lib__/experimental/lazyAPI.lua:1231: stack traceback:
	__zk-lib__/experimental/lazyAPI.lua:1226: in function 'get_current_mod'
	__zk-lib__/experimental/lazyAPI.lua:1055: in function 'extend'
	__zk-lib__/data.lua:32: in main

So, we just need the latest level, right?

Oh this makes sense now. Tail calls in combination with get info / stack traces are always confusing.
Alright, so, it's saying that data.pho was tail called, however that "level" does contain the information about the function that was called. For some reason I thought there'd be like an empty level that just says "yea there was a function here that tail called something" but Lua itself doesn't even keep that information, so that was dumb of me.
Anyway, I believe to achieve what you want all you have to do is remove the not info.istailcall from the if condition.

(and update the comments accordingly ;) )

Well, there's more to it for me actually...

I'm listening, if you want me to assist with it. Otherwise you're free to change the logic of course

that also works and is what I usually do. I didn't do it in this case because it looked like you wanted optimized code and a binary search is more optimized, although to be honest the stack trace will be so tiny most of the time that you can totally do it with a basic loop like you have right there

debug.getinfo returns table, so it "pollutes" a lot.

correct

It's too much "garbage" for binary search, also it does use the same function.

the binary search ends up reducing the amount calls to getinfo, therefore reduces the amount of tables it creates since it checks fewer "levels"

oh, hell, I have to check it xD

Well, binary search is search, but should fix it now, because it skipped levels xD

I'm not entirely sure what you mean by that, it skipping levels is intentional, as long as it ultimlately finds the last one. If it doesn't do that then it is bugged, yes, not sure if you meant it like that.

Well, it's weird, it should 2 binary searches, because there are several nils in such boundaries.

You just found one, but not the first one.

It's "bulky" for a small amount of levels.

Okay, my explanation is useless, but I'll check again.

So, usually binary search for a specific data, but we found just some data, but it's not the latest one.

I'm sorry, I still don't follow.
The level - the number passed to debug.getinfo - starts at 0 (which will be the getinfo function itself) and counts up as you walk up the stack, such that the function calling debug.getinfo will be 1, and the one calling that one is 2 and so on until it reaches the main entry point. In standalone Lua that would be a C function, in factorio it's the main Lua entry point. It is impossible for debug.getinfo(i) to return nil and debug.getinfo(i + 1) to return ~= nil.
A binary search works by jumping back and forth until it finds the last level that is not nil, and it will never check the same level twice.
In this case it first keeps doubling a number until it returns nil, which will be the upper bound, and it remembers the last one that didn't return nil as a lower bound. Then it takes the median of the two bounds and checks if that one is nil. if it is, it updates the upper bound to that number, if it isn't nil it updates the lower bound. Once there are no more levels between the 2 bounds it knows that the lower bound is the last level that doesn't return nil.
In a worst case scenario the binary search will check every level, but like I said it'll never check the same one twice.
An example:
Imagine the levels were like this:
0 - debug.getinfo
1 - count_levels
2 - get_stage
3 - foo
4 - bar
5 - baz
6 - main chunk

Then the binary search would check the following levels in this order: 1, 2, 4, 8, 6, 7
As you can see, 8 and 7 were nil, the other 4 weren't. So instead of 6 tables, it only created 4.
If the issue is that the binary search is finding the last one when you don't actually want that one, well, you first have to find the last level before you can start walking down the call stack, which is why I made get_first_lua_func_info a separate function

The step of binary search depends on mean and the same time we don't know upper limit because we skipped by n!
Invalid case: the latest actual valid level is 25, but step is:
x = 25 ("lower limit")
g = x * 2 ("upper limit")
step = floor((x + g) / 2)
step = 37
The binary search will rise the lower limit, but the valid answer is 25.

Once again I'm sorry but I don't follow. It sounds to me like you've got a broken binary search.
I hope providing an example sheds some light:
It's using the same binary search algorithm as above, but using a callback function instead of getinfo for testing. I technically changed upper_bound to start 2, it is unneccessary to check for 1 because it always exists.
local function binary_search(does_level_exist)
  -- this code assumes that level 1 _always_ exists. In another case, the implementation
  -- would have to be different, but this is much easier to understand imo
  local lower_bound = 1
  local upper_bound = 2
  print("initializing lower_bound at 1 and upper_bound at 2")
  -- find an upper bound
  while does_level_exist(upper_bound) do
    print("level "..upper_bound.." does exist, setting lower_bound to "..lower_bound.." and upper_bound to "..upper_bound)
    lower_bound = upper_bound
    upper_bound = upper_bound * 2
  end
  print("level "..upper_bound.." does not exist, proceeding with binary search")
  -- do a binary search
  while lower_bound < (upper_bound - 1) do
    local median = math.floor((lower_bound + upper_bound) / 2)
    if does_level_exist(median) then
      lower_bound = median
      print("level "..median.." does exist, setting lower_bound to "..median)
    else
      upper_bound = median
      print("level "..median.." does not exist, setting upper_bound to "..median)
    end
  end
  return lower_bound
end

print("testing with target 6")
print("result: "..binary_search(function(i) return i <= 6 end))
print()
print("testing with target 28")
print("result: "..binary_search(function(i) return i <= 28 end))

output:
testing with target 6
initializing lower_bound at 1 and upper_bound at 2
level 2 does exist, setting lower_bound to 1 and upper_bound to 2
level 4 does exist, setting lower_bound to 2 and upper_bound to 4
level 8 does not exist, proceeding with binary search
level 6 does exist, setting lower_bound to 6
level 7 does not exist, setting upper_bound to 7
result: 6

testing with target 28
initializing lower_bound at 1 and upper_bound at 2
level 2 does exist, setting lower_bound to 1 and upper_bound to 2
level 4 does exist, setting lower_bound to 2 and upper_bound to 4
level 8 does exist, setting lower_bound to 4 and upper_bound to 8
level 16 does exist, setting lower_bound to 8 and upper_bound to 16
level 32 does not exist, proceeding with binary search
level 24 does exist, setting lower_bound to 24
level 28 does exist, setting lower_bound to 28
level 30 does not exist, setting upper_bound to 30
level 29 does not exist, setting upper_bound to 29
result: 28

In short, I should go sleep, otherwise I'll mess even more.

sorry, I messed that up before copying it over, fixed it

it's fine

have a good sleep, I know how it feels trying to program while tired. There's a high chance of success the next day

local function count_levels()
  local li = 1
  local le = 1
  -- find a possible upper bound
  while debug.getinfo(le, "t") do
    li = le
    le = le * 2
  end

  -- do a binary search
  local m
  while li < le do
    m = (li + le) / 2
    if debug.getinfo(m, "t") then
      li = m
    else
      le = m
    end
  end
  return m
end

It looks a bit off, but it works (I should check more) and I got used to levels.
local function find_deepest_level()
	local li = 1
	local le = 1
	-- find a possible upper bound
	while debug.getinfo(le, "t") do
	  li = le
	  le = le * 2
	end

	-- do a binary search
	local m
	while li < le do
	  m = math.floor((li + le) / 2)
	  if debug.getinfo(m, "t") then
		li = m
		if li == m then
			break
		end
	  else
		le = m
	  end
	end

	return m - 1
end

https://byjus.com/maths/mean-median-mode/ (not the best example, but not the worst)

This works fine:
local function find_deepest_level()
    local li = 1
    local le = 1
    -- find a possible upper bound
    while debug.getinfo(le, "t") do
        li = le
        le = le * 2
    end

    -- do a binary search
    local m
    while li < le do
        m = math.floor((li + le) / 2)
        if debug.getinfo(m, "t") then
            if li == m then
                return m - 1
            else
                li = m
            end
        else
            le = m
        end
    end
end

Also count_levels work fine too.

So, the misunderstanding appeared because I didn't pay enough attention to get_first_lua_func_info.

It seems like minimal level is 3, but it depends.

It seems like minimal level is 2 for count\_levels, but it depends.
local function count_levels()
  local li = 3
  local le = 2

happy to hear you got it working :+1:
And I hope you don't mind a little essay, I know I can be a bit verbose :see_no_evil:
The minimal level ultimately depends on how many tail calls there were. Idk if you know what exactly they are so I'll explain: A tail call happens when you do return foo(), which means the the very last instruction before return would be a call, and the return values of the call get returned by this function without modification. That menas return 1, foo() cannot be a tail call, neither can return (foo()) (because it changes the return values by forcing it to be just 1, not multiple).
A tail call means that the calling function's call info (the thing describing which function is currently running) gets reused by the called function. That way it doesn't have to perform a heap allocation for a new call info, however it also means that it'll overwrite the info of the calling function, leaving it with just knowing "this function was tail callled, but we don't know from where", and it's only 1 call info on the stack, not 2. If the tail called function ends up tail calling another one the same thing happens, which means it doesn't even know how many calls were leading up to the currently running tail called function.
For getinfo that means that these tail call chains appear as a single level, with information about the last tail called function, and a flag indicating that it was tail called.
So now that we know what tail calls are and how they behave, imagine a scenario where the main chunk - like data.lua - ended with a statement like return data:extend{--[[...]]}. Well, that's a tail call. Then imagine that all calls leading up to count_levels also were tail calls, which in this case doesn't make sense but we'll explore it just for the theory. That would mean that count_levels is the only function on the call stack as its call info kept getting reused and overwritten. Note that C functions cannot be tailcalled, so the call to getinfo will always create a new call info. So in this theoretical scenario we would only have 2 levels. Level 0 being getinfo, and level 1 being count_levels, the rest were tail calls.
In reality the calls to count_levels and get_first_lua_func_info never are tail calls, so the bare minimum you can get is this:

0: getinfo
1: count_levels
2: get_first_lua_func_info
3: get_stage or get_current_mod

Where all calls leading up to get_stage or get_current_mod were tail calls, which also doesn't make sense since nobody would call those 2 functions as the last thing in their main chunk, but even if it doesn't make sense, it is the lowest count possible

Briefly about count_levels etc., it works ~6 times faster at least, than relying on the debug.traceback etc. My cashed variant is even slower for this case and has some bugs.
All bugs have been fixed: ZwerOxotnik/zk-lib@093de38, ZwerOxotnik/zk-factorio-static-lib@4a9755f

Wonderful to hear, I'm pleasently surprised that this is actually faster, goes to show that string operations are slow and Lua's speed is not to be underestimated once again :D
I also appreciate the attributions and I am happy to have helped :+1:

@JanSharp, btw, I have been doing some experiments, optimization etc., but most importantly, debug.getinfo(li, "") works fine.

Oh I didn't know that it would accept an empty string, always assumed it would require at least 1 letter. That's good to know, it'll just return an emtpy table then


Run specific test by --only option

Is your feature request related to a problem? Please describe.
In my project https://github.com/tanishiking/monkeys, there are multiple test files such as parser/Parser.test.scala and scanner/Scanner.test.scala.
We can run all tests by scala-cli test ., however, we can't run a specific test.
For example scala-cli test parser/Parser.test.scala doesn't compile because parser/Parser.test.scala depends on scanner/Scanner.scala.
Describe the solution you'd like
It would be great if we can run only specified tests by scala-cli test . --only <FQN-of-test>
Describe alternatives you've considered
Just run all tests by scala-cli test .
Additional context
testOnly, test

I am not sure about the naming of the --only flag, but we definitely should have some reasonable way of filtering tests.
It will probably take time to fully support each of the major test frameworks, but we should be able to support most through JUnit.
TLDR; let's do a spike on this first.

For reference: with the JUnit Interface it is already possible to run specific tests, just not a specific complete suite. For example, in the monkeys project from @tanishiking:
% scala-cli test . -- --tests=return-statement
==> i monkeys.parser.ParserTests.let-statement ignored 0.0s
monkeys.parser.ParserTests:
  + return-statement 0.02s
==> i monkeys.scanner.SnannerTests.basic ignored 0.0s
==> i monkeys.scanner.SnannerTests.advanced ignored 0.0s
monkeys.scanner.SnannerTests:

For reference: with the JUnit Interface it is already possible to run specific tests, just not a specific complete suite.

Oh, huh, I didn't realise it was this easy, already.
I suspect adding support for running a specific complete suite shouldn't be very hard, either.
We'll see about some sort of smarter filtering of the tests as well, once this ticket is picked up.

This has been done in https://github.com/VirtusLab/scala-cli/pull/1604, closing the ticket.


Bluetooth Failing After Suspend

Describe the bug
When I suspend and then resume on ASUS ROG Ally, the Bluetooth fails--it no longer detects Bluetooth devices, including previously paired ones. To reconnect, I have to reboot the machine.
What did you expect to happen?
For devices connected pre-suspend to be remembered, and possibly even reconnect automatically.
Output of rpm-ostree status
No response
Hardware
ASUS ROG Ally Z1 Extreme
Extra information or context
No response

Yes I'm having this on my ally x. If you go to desktop mode and back it fixes it as well, so it's just in game mode. No devices show up. You don't have to fully reboot.

Latest update may fix this

I think you're right. Literally right as you posted that steam said a system update was needed. Applied and works. I'll keep testing it.

So far so good.

Hello Bazzite friends,
The issue is resolved, so far as I can tell. Thank you! I've really enjoyed
using Bazzite -- I use it on my desktop PC as well, dualbooting with
Windows-- and it's great stuff.
Thank you!!
On Sat, Nov 2, 2024 at 11:06 AM dosubot[bot] @.***>
wrote:

Hi, @Jules2390 https://github.com/Jules2390. I'm helping the bazzite
team manage their backlog and am marking this issue as stale.
From what I understand, you reported an issue with your ASUS ROG Ally
where Bluetooth fails to detect devices after suspending and resuming,
requiring a reboot for reconnection. SmoothMcBeats confirmed experiencing
the same issue but found a temporary workaround by switching to desktop
mode and back. It seems that after a recent update, further testing
indicated that the issue may now be resolved.
Could you please let the bazzite team know if this issue is still relevant
to the latest version of the repository? If it is, feel free to comment
here. Otherwise, you can close the issue yourself, or it will be
automatically closed in 7 days. Thank you!
—
Reply to this email directly, view it on GitHub
https://github.com/ublue-os/bazzite/issues/1453#issuecomment-2453032981,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATKK3IBHXMBNTT2FWJEJH7LZ6TZ7FAVCNFSM6AAAAABL5SZP5SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJTGAZTEOJYGE
.
You are receiving this because you were mentioned.Message ID:
@.***>


connect  with ReadConfigFile get error ： ret=-13, Permission denied

my code
configPath := "/home/config/ceph.conf"
conn, _ := rados.NewConn()
if err := conn.ReadConfigFile(configPath); err != nil {
    return nil, err
}
if err := conn.Connect(); err != nil {
    return nil, err
}

There is a file of ceph.conf in /home/config, like this
# minimal ceph.conf for 21c80fea-d594-11ec-97b4-5254a8d6abe6
[global]
        fsid = 21c80fea-d594-11ec-97b4-5************
        mon_host = [v2:111.1111.22.110:3300/0,v1:111.1111.22.110:6789/0] [v2:111.1111.22.111:3300/0,v1:111.1111.22.111:6789/0] [v2:111.1111.22.113:3300/0,v1:111.1111.22.113:6789/0]

when i run code in ceph's master host, connect success
but when i run in  other host，such as <IP_ADDRESS>8， got error： ret=-13, Permission denied
Looking forward to your answer

I'm not sure if you meant to anonymize the fsid, but you didn't do it in all places, JFYI.
Without knowing more about the network this might be a tough one to diagnose. My suggestion would be to edit your conf file to enable more logging from the ceph libs and see what they may be hinting at.
You can read the last part of my old blog post here  for some hints on how to enable this logging.

When connecting the ceph cluster, do not need to transfer "ceph. Client. Admin. The keyring" file?

Problem solved。
frist：  conn.ReadConfigFile(configPath)
second： conn.ReadConfigFile(keyringPath)
Thank you for your answer~~


[Feature] Forge version

i really like the look of this mod, its such a shame that it only exists on fabric. can u please make it on forge.

I'm fully occupied with maintaining the Fabric version, so I have no plans to make a Forge version.


Introduce mpp query level processListEntry

What problem does this PR solve?
Issue Number: close #7643
Problem Summary:

Introduce query level processListEntry for mpp query, so all the mpp tasks belong to the same mpp query will share the same processListEntry(and the same memory_tracker)
Remove switchMemTracker for local tunnel since the memory tracker is now the same in source mpp task and target mpp task.
Disable local tunnel in ut if sender task is the root task

What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-integration-test

/run-integration-test


Offer easy way to hit breakpoints in unit tests

Problem: Hitting a breakpoint in a unit-test is currently not possible through the WAT interface.
Potential solution: I suggest adding a "Debug selected X" button somewhere in the interface that would launch a godot scene running the selected tests (either script or directory, like the current interface)
This would allow the use of in-built godot breakpoints without the users having to create custom debugging scenes.

I'll try and prototype a solution

Alright so for the time being, you should be able to add breakpoints and then run WAT as a scene and not an editor tool.
This is obviously not ideal because we don't want users to care about WAT data. To figure this out I need to figure out if there is a straightforward way of running a scene from the editor. We could possibly execute the scene by passing in commandline arguments from Godot, save the results in a resource, then read those resources for results display.

To re-emphasize; Once I figure out how I can click a tool button to make WAT run a scene implicitly, then a lot of this work is done.

I asked on the godot Reddit and WillNationsDev pointed me towards the Os.execute(...) method
But I don't know if this allows for breakpoints to be hit or if it just runs the engine with a target scene

Ok so a quick test confirmed me that the debugger isn't linked when you use OS.execute to launch a scene

Yeah that's a problem. I could figure out a slightly convoluted way to pass results from the scene to the editor via resources but no debugger. If this is going to happen, it won't be for a while if at all.

If you pass "-d" for the debugger, you can access a command-line version. You think something like this might suffice for the time being? A Command Line option also means being able to affect tests on servers if you have no visual interface.

I'm not able to access breakpoints from toolscripts I think.

To be clear, you can run it via
godot -s -d addons/WAT/CLI.gd -run_? from the command-line.

We could get around this problem by creating a custom node that does all the boilerplate for us.
Example:
extends Node

class_name TestDebugger

export (GDScript) var testScript : GDScript

func _ready():
	var script = testScript.new()
	if script is WATTest:
		#Test Runner sequence (Start -> Pre -> Test -> etc...)
		pass

If we give it a cute icon and some documentation, it makes creating the testing scene really quick and allows to drag & drop the test scripts. Then we simply use good old F6 and our breakpoints are hit.
Not perfect, but better than nothing.

I managed to figure out a way to get it into the button.

Basically we search up the editor tree until we get the editor node (is there an easier way to get this?) and then we can access the _menu_option method, then we passed in an enum value (the enum itself having been copied from here: https://github.com/godotengine/godot/blob/22782d519c263febe0af94c7765fd79565c0f3ce/editor/editor_node.h)
I clicked that test runner button below and voila, we got the current open scene running. More detailed iterations could set the particular scene via your export idea there.

Alright I messed around in the experimental branch. This is feasibly but it touches pretty much the whole code base. I've been planning on a proper refactor/rewrite for a while so this seems to be better set for 5.0 which might be a while. However it will solve this issue, solve the other issue with autoloads and probably handle some-side effect related things. Hopefully without changing the user interface too much.

Alright, thanks for the info, I'll look forward to 5.0 then :)


[Feature Request] Add function calling benchmark and tools

Required prerequisites

[ ] I have searched the Issue Tracker and Discussions that this hasn't already been reported. (+1 or comment there if it has.)
[x] #1020

Motivation
https://gorilla.cs.berkeley.edu/leaderboard.html
Solution
No response
Alternatives
No response
Additional context
No response

close as finished in https://github.com/camel-ai/camel/pull/1136/


Add deprecation ability to type definitions

Per discussion, driven by changes documented in #1317 as one example, it would be good to add the possibility to track a deprecation status against the type definitions -- both at the attribute level and on the broader type definitions (entity, relationship, etc) themselves.

Moved to 1.3 as agreed on team call

It is now possible to mark an attribute as deprecated.  There are two follow on pieces of work:

mark the attributes that we currently have documented as deprecated in the comments.
design utilities and changes to the OMRS property services to manage deprecated properties.


Adalight - Fix LED Num for non analogue output

Summary
Adalight

Fix LED Num for non analogue output
Send back number of LED configured

What kind of change does this PR introduce? (check at least one)

[X] Bugfix
[X] Feature
[ ] Code style update
[ ] Refactor
[ ] Docs
[ ] Build-related changes
[ ] Other, please describe:

If changing the UI of web configuration, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)

[ ] Yes
[X] No

If yes, please describe the impact and migration path for existing setups:
The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's body (e.g. Fixes: #xxx[,#xxx], where "xxx" is the issue number)

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature
[ ] Related documents have been updated (docs/docs/en)
[ ] Related tests have been updated

PLEASE DON'T FORGET TO ADD YOUR CHANGES TO CHANGELOG.MD

[ ] Yes, CHANGELOG.md is also updated

To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information:
Addresses issue reported via forum:
https://hyperion-project.org/threads/first-led-always-on-with-arduino.11127/#post-31796

@Lord-Grey First of all thanks for this commit. I am having the same issue with this sketch using Hyperion.NG on an Arduino Uno. However when I applied the updated code and power cycled the Arduino the first LED kept lit up when try using the Off toggle via the hyperion-remote or GUI.

@Lord-Grey First of all thanks for this commit. I am having the same issue with this sketch using Hyperion.NG on an Arduino Uno. However when I applied the updated code and power cycled the Arduino the first LED kept lit up when try using the Off toggle via the hyperion-remote or GUI.


Touch mapping issue

Description
Hey. I have a laptop with two touchscreens and the touches aren't mapped correctly. Regardless of the touchdevice, the touch gets registered on the active monitor.
I got some support from the discord server and they mentioned that it isn't currently possible to map multiple tablets and that I should open an issue here.

Nope, pacman. Is it preferred to use git?
Config file:
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,3840x2160,0x0,2
monitor=DP-2,3840x1100,0x1080,2

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
exec-once = waybar

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Some default env vars.
env = XCURSOR_SIZE,24

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = no
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 20
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    blur {
        enabled = true
        size = 3
        passes = 1
    }

    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = off
}

misc {
    disable_hyprland_logo = true
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device {
    name = epic-mouse-v1
    sensitivity = -0.5
}

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = Alt

# System keybinds

# Shutdown system
bind = $mainMod SHIFT, Escape, exec, poweroff
bind = $mainMod, Escape, exec, reboot

# Set brightness using brightnessctl
binde = , XF86MonBrightnessUp, exec, brightnessctl set +5%
binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
binde = SHIFT, XF86MonBrightnessUp, exec, brightnessctl set +1%
binde = SHIFT, XF86MonBrightnessDown, exec, brightnessctl set 1%-

# Set volume and mic using pactl
binde = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%
binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%
binde = SHIFT, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%
binde = SHIFT, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%

# Capture screenshots with grim
bind = , Print, exec, grim -o eDP-1
bind = SHIFT, Print, exec, grim -g "$(slurp)"
bind = $mainMod, Print, exec, grim -o eDP-1 - | wl-copy

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT, E, exit,
bind = $mainMod, V, togglefloating,

# Move focus with mainMod + arrow/vi keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d

# Move windows with mainMod SHIFT + arrow/vi keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
bind = $mainMod SHIFT, h, movewindow, l
bind = $mainMod SHIFT, l, movewindow, r
bind = $mainMod SHIFT, k, movewindow, u
bind = $mainMod SHIFT, j, movewindow, d

# Toggle active with mainMod + Tab keys
bind = $mainMod, Tab, cyclenext
bind = $mainMod, Tab, bringactivetotop

# Toggle fullscreen wirh mainMod + F keys
bind = $mainMod, F, fullscreen

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Getting required variables
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

# Getting numpad service started
exec-once=sudo systemctl start asus_touchpad_numpad.service

# App keybinds
bind = $mainMod, Return, exec, alacritty
bind = $mainMod SHIFT, F, exec, mullvad-browser
bind = $mainMod SHIFT, D, exec, webcord
bind = $mainMod SHIFT, C, exec, chromium -incognito

well it would be nice to test on git because there is a chance its fixed there already

Sure, thanks. I will try that in a couple of weeks (post my exams) and get back to you.

@Kwanky-Millet That looks suspiciously like the Asus Zenbook Duo I just bought :smile:
I fixed the mapping like this:
device {
    name = elan9008:00-04f3:425b
    output = eDP-1
}
device {
    name = elan9009:00-04f3:425a
    output = eDP-2
}

The default auto detection mapped both touch devices to eDP-1.

@Kwanky-Millet That looks suspiciously like the Asus Zenbook Duo I just bought :smile:
I fixed the mapping like this:

device {

    name = elan9008:00-04f3:425b

    output = eDP-1

}

device {

    name = elan9009:00-04f3:425a

    output = eDP-2

}

The default auto detection mapped both touch devices to eDP-1.

holy guacamole! this was resolved in the discord server itself. i remember closing this issue but ig i was wrong, welp.
anyhoo, i have a duo too! hence the similarity :D


Add support for Facebook Limited Login.

Holding off on merging this until backend changes are ready.

Hi @morganchen12, do you happen to have any ideas why the Facebook Auth / spm (pull_request) check is failing? I don't see anything in my last commit that would cause it to fail, and it passed on all the previous commits.

Hi @morganchen12, do you happen to have any ideas why the Facebook Auth / spm (pull_request) check is failing? I don't see anything in my last commit that would cause it to fail, and it passed on all the previous commits.

Verified that the Facebook Auth / spm (pull_request) check is also failing on master: https://github.com/firebase/FirebaseUI-iOS/actions/runs/1262616275

Looks like a dependency change upstream broke the build:
The following build commands failed:
	CompileSwift normal x86_64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Exports.swift
	CompileSwift normal x86_64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Imports.swift
	CompileSwift normal x86_64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/AccessToken.swift
	CompileSwift normal x86_64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/Permission.swift
	CompileSwift normal i386 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Exports.swift
	CompileSwift normal i386 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Imports.swift
	CompileSwift normal i386 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/AccessToken.swift
	CompileSwift normal i386 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/Permission.swift
	CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
	CompileSwift normal arm64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Exports.swift
	CompileSwift normal arm64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Imports.swift
	CompileSwift normal arm64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/AccessToken.swift
	CompileSwift normal arm64 /Users/runner/Library/Developer/Xcode/DerivedData/FirebaseUI-iOS-evcpsltbtpeuifaedctjdqqcpomg/SourcePackages/checkouts/facebook-ios-sdk/Sources/FacebookCore/Swift/Permission.swift
(13 failures)
Command CompileSwift failed with a nonzero exit code


Create azure-cli-core package that command modules and azure-cli can depend on

Fixes #658

Nightly build script modifications
Load module and fallback to all if doesn't work
Fix Dockerfile
No modules found, no problem
Modify package_verify to work with new package structure
modify .travis.yml file for CI builds to work again
fix dev_setup
import modules differently
Move stuff

@tjprescott, @yugangw-msft, @burtbiel, @johanste please take a look.

Looks good to me. Hopefully the follow on items follow soon. :)

In reply to: 245418417 [](ancestors = 245418417)

:shipit:

:shipit:


add unit test for history client

What changed?

Added unit test
Refactored PeerResolver to interface for easier testing

Why?
improve test coverage

How did you test it?

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 018ea086-5071-4f5f-8be5-0c42f9c6dc5c
Details

5 of 6 (83.33%)  changed or added relevant lines in 1 file are covered.
42 unchanged lines in 11 files lost coverage.
Overall coverage increased (+0.2%) to 65.763%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

client/history/peerResolver.go
5
6
83.33%

Files with Coverage Reduction
New Missed Lines
%

common/task/weighted_round_robin_task_scheduler.go
2
88.06%

common/task/parallel_task_processor.go
2
93.06%

service/history/task/timer_task_executor_base.go
2
78.38%

common/persistence/execution_manager.go
2
83.54%

common/util.go
2
91.78%

service/matching/taskListManager.go
2
80.2%

service/history/execution/mutable_state_util.go
2
78.13%

common/persistence/statsComputer.go
2
96.07%

common/task/fifo_task_scheduler.go
3
84.54%

service/history/shard/context.go
9
66.87%

Totals

Change from base Build 018ea085-2ea6-4c6f-9225-60496ba965f0:
0.2%

Covered Lines:
96237

Relevant Lines:
146339

💛  - Coveralls


Add tests for the create_demo_site management command

Feature Request
PR https://github.com/openfun/richie/pull/345 removed tests for the "create_demo_site" command. We should find a solution to better test this command.
Describe the solution you'd like

Test the "create_demo_site" method by mocking all factories AND the "recursive_page_creation" method.
Test the "recursive_page_creation" method by mocking the PAGE_INFOS dictionary with a minimal configuration:

{
    "my-page": {
        "content": {"en": "my page", "fr": "ma page"},
        "in_navigation": False,
        "kwargs": {
            "template": "richie/fullwidth.html",
            "reverse_id": "my_page",
        },
        "children": {
            "my-sub-page": {
                "content": {"en": "my sub page", "fr": "ma sous page"},
                "in_navigation": True,
                "kwargs": {"template": "richie/fullwidth.html"},
            }
        },
    },

The create_demo_site command is now fully tested.


Expose TransportApiResponse

The documented way to call perform_request on a node is to expect a tuple in response, Tuple[ApiResponseMeta, bytes]. But the actual underlying type is TransportApiResponse:
class TransportApiResponse(NamedTuple):
    meta: ApiResponseMeta
    body: Any

As pointed out by @ywangd, It would make sense to expose it alongside other responses types and change the Nodes docs page to use it.

Opened a PR here. I have some linting issues it seems. Should I be using Black for formatting?

I figured out the formatting issues!


Restrict range for subsurface scattering

Godot version:
master / 224d5371ff65a
OS/device including version:
Manjaro Linux 17.1
Issue description:
It seems that the sub-surface scatter creates multiple 'ghosting' images of the original mesh which can be especially noticeable when combined with other effects like transmission.
The image shows how it looks with subsurf scatter at 0.2 (with transmission effect). As you can see, the shilouettes of multiple juxtaposed images appear in shadowed areas:

And it becomes more noticeable if I increase the value to 0.5:

Not a bug, you just set the value too high, simply use it as a blur with a smaller value.

Actually lets do this, I will change this to an enhancement for 3.2 (which will likely break compat)

Is this still relevant with the new SSS implementation?

The range in the new implementation is much better, put at its highest you still get a little bit of artifacts when zoomed in, but not like in this issue.


Questions regarding multimodal inversion

Hi,
first of all, thank you for sharing your code. I have run the examples, have gone a bit through the code and came up with a few questions:

Is the multi-mode inversion implemented yet? The "inv_param" class get a "mode" argument which default is 0 and which is apparently never used in "cpu_iter_inversion". Or do I have to invert the modes separately while specifying the argument (if I have multiple modes)  and then merge the respective velocity profiles afterwards somehow ?

I have attached a figure showing exemplary modes that I need to invert. They are largely overlapping in the periods. Will this be a problem for the inversion as I have to specify a "fundamental range" for the initialization of the model ?

Is it possible to retrieve the predicted dispersion curve that is used to compute the loss ?

This is probably a bug. When I use none of the initialization methods and just define my own starting model parameters (thickness, vp,vs,rho) I will end up in a NameError ("The initialize method can only select from [Brocher,Constant]") in the cpu_iter_inversion.

Lastly, is there a paper with a more detailed description of this method and which paper do I cite when I use you code ?

Thank you!

Thansk for your question.
(1) the misfit function we use is named "determinant misfit", which not need to seperate different mode of dispersion curve. (More information about this misfit function can be found at doi: 10.1111/j.1365-246X.2010.04703.x). The "mode" option just used for initialize your velocity mode (Usually empirical formulas are only suitable for dispersion curves of the fundamental order mode)
(2) I apologize for this problem, but I've been working on it recently. The correct input to the program should contain three columns (frequency, phase velocity, and mode order), but right now it doesn't do a very good job of initializing multi-order inputs. I'll be working on an updated version for easier initialization of the model.
(3) It is possible to retrieve the dispersion curves corresponding to the inversion results, just by adding a bisection search module. One of my recent work also combines a traditional loss function with a deterministic loss function, which also requires extracting the dispersion curve of the inversion result.
(4) Once you have used your own defined model parameters, you need to specify the initialization method as "Constant" to determine how vp/rho is converted during the update process (These two parameters are shown to be insensitive to changes in the dispersion curve).
(5) Our article is being submitted for review by Geophysical Journal International and I will be submitting an axriv version soon, thanks for your comments!

Thank you for the quick response and the reference.
I bypassed the initializing problem feeding a second "tvs_obs" to the function only containing the fundamental mode. The multimodal inversion seems to work fine.
regarding (3): when I compute the determinant matrix for the inversion result I retrieve the following image:

I assume the predicted phase velocities for each frequency are at the zero-crossings such that I can extract them looking for the index where the amplitude is (close to) zero ?
I would also like to use the MonteCarlo sampling approach. Can I here use the "cpu_multi_inversion" (with zero horizontal damping?) to invert from many starting models simultaneously for a single location? Could you explain how the input data for this case should look like in terms of dimension? It says  " # observed dispersion data [[t,v],[t,v]] 【station,pvs_num,[t,v]]] " but I guess its not a list of lists that is requested here. Maybe you could post an example.
Also it appears that the init_model_MonteCarlo instance can not be passed to the inversion directly as it does not contain a init_model instance with all the MonteCarlo samples, not sure if this is a bug or I do something wrong here.
Thanks!

Thanks for your question, I have recently tweaked the program:
(1) the input data supports three dimensions, [tlist,phase velocity, dipsersion order], but note that the empirical method of initializing our model only supports the 0-order dispersion curves
(2) the CPU and GPU runs of the iterative inversion process are fused together, which you can determine by simply indicating the DEVICE.
(3) I added the forward module, which can help you directly compute the surface wave dispersion curves for a given model. Some examples are added into the folder.
(4) 0 horizontal damping is mainly used for 2D linear table array inversion to constrain the velocity model at different locations in the lateral direction, and only vertical damping is mainly used for 1D inversion.
(5) The initial model of Montecarlo method is 2D data: the model is [initial number, Vp/Vs/rho/h], and the observation data is 3D data [initial number, disp_t, disp_v].

Hi,
thanks for the update and congrats for the nice paper!
I am back working on the project where I would like to use your code and have more questions:
The data I am using is offshore so I need to include a water layer (80m).
I tried to just add a water layer as the uppermost layer to the initial models (thickness=0.08, vs=0.0, vp=1.5 and rho=1.0)
When I run the inversion now the "llw-flag is activated" and I am getting dimension mismatches in "_cps/_surf96_vectorAll_gpu.py"  in the dltar4_vector function in 386 "xka = omega / alpha[0]". If I debug this one I get another one at 392 at " p = ra * dpth" and afterwards one in the "var_vector" function 393/394. Hence there seems to be a systematic dimension mismatch.  It seems like those functions are not adapted to handle the multiple starting models.
Without adding the water layer, and hence with llw=-1, the inversion works (multi-inversion on GPU) , however the the results seem not well determined.


CLOUD-45781 support encrypted storage keys + consul event fix

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1919/


If player is riding a Vehicle, bring the Vehicle as well.

I added the ability for /home to bring the player and anything that it is riding: boats, horses, etc.
I think adding a new config option for bring the Vehicle as well would be good, but wanted to hear your thoughts before I go and implement that.
I tested this on both Forge and Fabric, and Singleplayer and Multiplayer and did not run into any issues.

I like this, although if you could, please target the 1.16 branch and I will merge it up from there - a config option would be good, if you want to implement that go ahead since the config already exists.

Also side note, this will not work for interdimensional teleports. You need to support that.

Closing this and then opening a new one for the change.


Move to hamilton SDK

Move over to use the hamilton SDK for MS Graph communication: https://github.com/manicminer/hamilton

Adding GetMemberGroups to user client: https://github.com/manicminer/hamilton/pull/5

Adding GetMemberGroups to user client: https://github.com/manicminer/hamilton/pull/5

Closed by #8

Closed by #8


Use FileVersion to check for updates instead of AssemblyVersion

AssemblyVersion should not be presented in the about box. It should also not be used as the parameter to check for available updates.

https://support.microsoft.com/en-us/kb/556041


Implement expansion run results UI

Requires https://github.com/NASA-AMMOS/aerie-ui/issues/576
This is to implement the expansion run results UI. Essentially a new UI on the /expansion route that shows past expansion runs and allows scrolling through runs, sets, and sequences.

Design is here: https://www.figma.com/file/PtQUnVVBeH1JdwUw6BvKqW/Expansion-Run?node-id=0-1&t=6J9aNPlHTl8gDTds-0


Optimize assertCanBeParsedAndDeparsed

Avoid redundant calls of buildSqlString()
Replace String.replaceAll() with Matcher.replaceAll() based on precompiled Regex Patterns

The actual benefit is only small, but we call these methods very often during the tests.

Thx. I see the benefit more in readability. :)


Differential (Delta) Model Update

I'm new to tensorflow. My area of usage would be on device execution for item recognition.
As my use case requires frequent updates on the items to recognize, I was wondering if it is possible to update models in a delta way, e.g. to only transfer the updated data and not the whole model each time.

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.
Thanks!

Well, it would be a feature request if this functionality isn’t available yet. :P

On 15 Apr 2019, at 11:33, gadagashwini<EMAIL_ADDRESS>wrote:
This question is better asked on StackOverflow http://stackoverflow.com/questions/tagged//tensorflow since it is not a bug or feature request. There is also a larger community that reads questions there.
Thanks!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/tensorflow/tensorflow/issues/27815#issuecomment-483178484, or mute the thread https://github.com/notifications/unsubscribe-auth/ACtKm4K0P3MgxQABEB4pIqpuZnDim9Z4ks5vhEeFgaJpZM4cuCnn.

@MentalGear, Tensorflow supports save and restore model. Please find tutorial in this link which help you to save model and restore. Thanks!

Well, my feature request was about a more efficient transfer of a model for offline use, not save and restore operations.

On 16 Apr 2019, at 13:15, gadagashwini<EMAIL_ADDRESS>wrote:
@MentalGear, Tensorflow supports save and restore model. Please find tutorial in this link which help you to save model and restore. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@MentalGear Can you please fill the feature request issue template and post issue. Please try to elaborate as much as you can. Thanks!


[BUG] Installing MSIX packages through PowerShell fails to create user directory

MSIX SDK
Describe the bug
One of our customers uses Windows Enterprise 22H2 (though older Versions display the same behaviour) for some managed devices and wants to deploy our app, signed by a developement certificate to allow distribution via MSIX and PowerShell (the app is build using the Windows App SDK and WinUI 3 in case that should matter). Multiple other customers with similar environments never had any issues with this porcess, but there seems to be something wrong which we couldn't troubleshoot despite our best efforts.
Installing the app through different means repectively shows a number of oddities:
If the app is installed through the App Installer:
The Folder at C:\Program Files\WindowsApps will not be removed upon uninstalling, leaving a dead directory;
Everything else appears as expected and the app works.
If the app is installed through PowerShell:
The app does not show up shell:AppsFolder, the Start Menu or Apps & Features;
The %appdata%/Local directory belonging to the app is not created;
The app is however listed when executing Get-AppxPackage, with the following entry:
    Name              : AppName
    Publisher         : CN=OurSigningAuthority
    Architecture      : X64
    ResourceId        :
    Version           : <IP_ADDRESS>
    PackageFullName   : AppName_<IP_ADDRESS>_x64__Signature
    InstallLocation   : C:\Program Files\WindowsApps\AppName_<IP_ADDRESS>_x64__Signature
    IsFramework       : False
    PackageFamilyName : AppName_Signature
    PublisherId       : Signature
    IsResourcePackage : False
    IsBundle          : False
    IsDevelopmentMode : False
    NonRemovable      : False
    IsPartiallyStaged : False
    SignatureKind     : Developer
    Status            : Ok

To Reproduce
I wasn't able to reproduce this at all, it occurs only on the managed machines of said client.
Platform
Windows 22H2  | WinUI 3 | Windows App SDK

Worked as intenten, but was run out of user context, which is required for AppData directories to be created.


Fix component mount hook method bindings

1⃣ Is this something that is wanted/needed? Did you create a feature-request issue first?
Yes #127
2⃣ Does it contain multiple, unrelated changes? Please separate the PRs out.
It adds a DependecyResolver trait and updates the LiveWireManager mount method to resolve the class method bindings.
3⃣ Does it include tests if possible? (Not a deal-breaker, just a nice-to-have)
Yes a test is added
4⃣ Please include a thorough description of the feature/fix and reasons why it's useful.
With this fix, livewire components are able to mount dependencies when rendered as blade directive, as this was only possible when components were rendered as a route view
5⃣ Thanks for contributing! 🙌

Thanks @webong for the contribution.
I'm guessing you copied RouteDependencyResolverTrait from Laravel instead of using it because of it's dependency on "$this->container". I messaged your code so that we don't have to maintain a copy of that trait (or maybe it'll end up biting us the other way around (depending on the framework)).
Anyhow, good PR - thanks.

@all-contributors please add @webong for code


NextQueueItemIsValid to use active char instead of next char

allows for char to also block swap if swap is not a valid next action

The follow changes fix the problem
diff --git a/pkg/simulation/run.go b/pkg/simulation/run.go
index addf1f6a5..010c219d7 100644
--- a/pkg/simulation/run.go
+++ b/pkg/simulation/run.go
@@ -152,7 +152,7 @@ func queuePhase(s *Simulation) (stateFn, error) {
 	}
 	// append swap if called for char is not active
 	// check if NoChar incase this is some special action that does not require a character
-	if next.Char != keys.NoChar && next.Char != s.C.Player.ActiveChar().Base.Key {
+	if next.Char != keys.NoChar && next.Char != s.C.Player.ActiveChar().Base.Key && next.Action != action.ActionSwap {
 		s.queue = append(s.queue, &action.Eval{
 			Char:   next.Char,
 			Action: action.ActionSwap,
@@ -256,13 +256,21 @@ func executeActionPhase(s *Simulation) (stateFn, error) {
 		// wrap the error for more context
 		return nil, fmt.Errorf("error encountered on %v executing %v: %w", q.Char.String(), q.Action.String(), err)
 	}
+	next := skipUntilCanQueue
 	//TODO: this check here is probably unnecessary
 	if l := s.popQueue(); l > 0 {
 		// don't go back to queue if there are more actions already queued
-		return actionReadyCheckPhase, nil
+		next = actionReadyCheckPhase
 	}

-	return skipUntilCanQueue, nil
+	if q.Action == action.ActionSwap {
+		// if the action is swap, we need to advance frames by the SwapDelay so that the ready checks are being done on the correct character
+		// this is only needed because implicit swap will queue two actions immediately.
+		// an explicit swap will advance until the swap's CanQueueAfter before queue and calling ready check on the next action
+		return s.advanceFrames(s.C.Player.Delays.Swap, next)
+	}
+
+	return next, nil
 }

 func skipUntilCanQueue(s *Simulation) (stateFn, error) {


Remove deno_std workspace setup from local dev instructions

I can't find the _tools/convert_to_workspace.ts in deno_std, and I believe it's been migrated over.

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


isFile Validation

Will be cool a property to support file uploads:
{
     "image": {
         "description": "Profile image",
         "scope": "body",
         "isRequired": true,
         "isFile": true
    }
}

I would like to add isBase64


Add helper methods to StackFrame

SpongeAPI | SpongeCommon | SpongeForge

@kashike The API PR was merged, but this and the SpongeForge PR are still open. Could you merge these?

Also the SpongeVanilla PR.

These aren't going to be merged.

The API one was, though.


Fix golint issues in maya/types/v1/scale_int.go

File: maya/types/v1/scale_int.go
Line 16: warning: package comment should be of the form "Package v1 ..." (golint)

Resources:
-> Contributors guide: https://github.com/openebs/openebs/blob/master/CONTRIBUTING.md
Complexity: Easy

I would like to try this issue

not a valid issue anymore.. hence, closing this


WICKET-7133 Ability move focus back to the autocomplete field when selecting an item using the Tab key

We need the ability to prevent the autocomplete from moving the focus to the next component when the user press "Tab". The marked item should be selected but the focus should go back to the autocomplete input field.

The code style issues should be fixed now


Using "alt" instead of "ctrl" to delete a point, fixed reducer

Motivation and context
Resolve #2115
Resolve #2012
How has this been tested?
Manual testing
Checklist

[x] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[x] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[x] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Coverage remained the same at 65.389% when pulling d7be1ea32d41e354524eb47f0b7c3fbde69f0783 on bs/fixed_shortcut_remove_point into 4a8095914dc24e0bb32c2414dae815016bf34334 on develop.


Setup and first tests and docs

As titled

@samwang141224 -- I wished for you to review my PR not to add files to it.
Please remove all of your changes and review this PR.
You should add your changes to a separate branch and eventually submit
a separate PR for those.
Thanks!

@samwang141224 -- I wished for you to review my PR not to add files to it.
Please remove all of your changes and review this PR.
You should add your changes to a separate branch and eventually submit
a separate PR for those.
Thanks!

Also, when you do start adding files, go somewhat slowly,
i.e not all at once.  I'll be quick to review your PRs.  I promise.
But I am going to be more strict about documentation and tests.

Also, when you do start adding files, go somewhat slowly,
i.e not all at once.  I'll be quick to review your PRs.  I promise.
But I am going to be more strict about documentation and tests.

sorry I misunderstood the operation,I have deleted all the adding files.

sorry I misunderstood the operation,I have deleted all the adding files.

OK, since our codes include different parts:such as generating dataset, training and validation, maybe I can begin to upload codes for generating dataset?

OK, since our codes include different parts:such as generating dataset, training and validation, maybe I can begin to upload codes for generating dataset?


opt Cache only the metadata for the columns need to read in Segment

What problem does this PR solve?
For wide tables, it may be need to read data from only a few columns, so caching the entire file's footer metadata would be a waste of memory.
Problem Summary:
Release note
None
Check List (For Author)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[x] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[x] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[x] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

run buildall

run buildall

#44189


hplip: "printer stopped, filter failed" status

Issue description
Using a network printer LaserJet 500 M551 from HP.
Shortly after submission of any document, the CUPS "printers" tab of the http interface reports status "stopped, filter failed".
Steps to reproduce

Install NixOS 16.09
Switch to nixos-16.09 channel for updates nix-channel --add https://nixos.org/channels/nixos-16.09 nixos

Follow https://nixos.org/wiki/Printers to modify "/etc/nixos/configuration.nix" and to
choose the HP driver printer with the "hp-setup" utility from the "hplip" package:

/etc/nixos/configuration.nix:

services.printing = {
    enable = true;
    gutenprint = true;
    drivers = [ pkgs.hplipWithPlugin ];
};

run  $(nix-build '<nixpkgs>' --no-out-link -A hplip)/bin/hp-setup to select the network printer and the driver <hash>-python2.7-hplip-3.16.5/share/ppd/HP/hp-laserjet_500_color_m551-ps.ppd.gz, which matches exactly the model of the printer

Print a test page

Check the printing job status: direct your browser to http://localhost:631/printers/HP_LaserJet_500_color_M551 and find the printer stopped, filter failed status.

Check the CUPS service log (as suggested by redditor saae): journalctl -b -e _SYSTEMD_UNIT=cups.service and find a Python error message OSError: [Errno 2] No such file or directory.

    -- Logs begin at Sun 2016-10-09 18:54:26 CDT, end at Fri 2017-03-17 16:21:43 CDT. --
    Mar 17 16:06:09 foo cups-pre-start[794]: Updated /var/lib/cups/ppd/max.ppd using gutenprint.5.2://bjc-MAXIFY-MB5320/expert
    Mar 17 16:06:09 foo cups-pre-start[794]: Updated 1 PPD file, 1 skipped.
    Mar 17 16:06:09 foo cupsd[918]: No limit for Validate-Job defined in policy default and no suitable template found.
    Mar 17 16:06:09 foo cupsd[918]: No limit for Cancel-Jobs defined in policy default - using Pause-Printer's policy.
    Mar 17 16:06:09 foo cupsd[918]: No limit for Cancel-My-Jobs defined in policy default - using Send-Document's policy.
    Mar 17 16:06:09 foo cupsd[918]: No limit for Close-Job defined in policy default - using Send-Document's policy.
    Mar 17 16:06:09 foo cupsd[918]: No limit for CUPS-Get-Document defined in policy default - using Send-Document's policy.
    Mar 17 16:06:09 foo cupsd[918]: No JobPrivateAccess defined in policy default - using defaults.
    Mar 17 16:06:09 foo cupsd[918]: No JobPrivateValues defined in policy default - using defaults.
    Mar 17 16:06:09 foo cupsd[918]: No SubscriptionPrivateAccess defined in policy default - using defaults.
    Mar 17 16:06:09 foo cupsd[918]: No SubscriptionPrivateValues defined in policy default - using defaults.
    Mar 17 16:06:09 foo cupsd[918]: Remote access is disabled.
    Mar 17 16:06:09 foo cupsd[918]: Loaded configuration file "/etc/cups/cupsd.conf"
    Mar 17 16:06:09 foo cupsd[918]: Configured for up to 100 clients.
    Mar 17 16:06:09 foo cupsd[918]: Allowing up to 100 client connections per host.
    Mar 17 16:06:09 foo cupsd[918]: Using policy "default" as the default.
    Mar 17 16:06:09 foo cupsd[918]: Full reload is required.
    Mar 17 16:06:09 foo cupsd[918]: Loaded MIME database from "/nix/store/bkn53cvgh4vsnq16qsgm8d7xm0hn2smb-cups-progs/share/cups/mime" and "/etc/cups": 49 types, 84 filters...
    Mar 17 16:06:10 foo cupsd[918]: Loading job cache file "/var/cache/cups/job.cache"...
    Mar 17 16:06:10 foo cupsd[918]: Loading from cache...
    Mar 17 16:06:10 foo cupsd[918]: Loading from cache...
    Mar 17 16:06:10 foo cupsd[918]: Loading attributes...
    Mar 17 16:06:10 foo cupsd[918]: Full reload complete.
    Mar 17 16:06:10 foo cupsd[918]: Cleaning out old files in "/var/cache/cups".
    Mar 17 16:06:10 foo cupsd[918]: CreateProfile failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: CreateProfile failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: Registering ICC color profiles for "HP_LaserJet_500_color_M551".
    Mar 17 16:06:10 foo cupsd[918]: CreateDevice failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: CreateProfile failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: CreateProfile failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: Registering ICC color profiles for "max".
    Mar 17 16:06:10 foo cupsd[918]: CreateDevice failed: org.freedesktop.DBus.Error.ServiceUnknown:The name org.freedesktop.ColorManager was not provided by any .service files
    Mar 17 16:06:10 foo cupsd[918]: Listening to <IP_ADDRESS>:631 on fd 7...
    Mar 17 16:06:10 foo cupsd[918]: Listening to /var/run/cups/cups.sock on fd 8...
    Mar 17 16:06:10 foo cupsd[918]: Resuming new connection processing...
    Mar 17 16:06:43 foo cupsd[918]: Saving printers.conf...
    Mar 17 16:07:20 foo cupsd[918]: Unloading...
    Mar 17 16:07:47 foo cupsd[918]: Adding start banner page "none".
    Mar 17 16:07:47 foo cupsd[918]: Queued on "HP_LaserJet_500_color_M551" by "supremacsy".

    Mar 17 16:07:47 foo cupsd[918]: Request file type is application/postscript.
    Mar 17 16:07:47 foo cupsd[918]: File of type application/postscript queued by "supremacsy".
    Mar 17 16:07:47 foo cupsd[918]: Adding end banner page "none".

    Mar 17 16:07:47 foo cupsd[918]: Hint: Try setting the LogLevel to "debug" to find out more.

    Mar 17 16:07:47 foo cupsd[918]: PID 1566 (/nix/store/bkn53cvgh4vsnq16qsgm8d7xm0hn2smb-cups-progs/lib/cups/filter/pstops) exited with no errors.
    Mar 17 16:07:55 foo cupsd[918]: ready to print
    Mar 17 16:07:55 foo cupsd[918]: PID 1568 (/nix/store/bkn53cvgh4vsnq16qsgm8d7xm0hn2smb-cups-progs/lib/cups/backend/hp) exited with no errors.
    Mar 17 16:07:55 foo cupsd[918]: Job stopped due to filter errors; please consult the error_log file for details.
    Mar 17 16:07:56 foo cupsd[918]: Unloading...
    Mar 17 16:08:18 foo cupsd[918]: Saving job.cache...
    Mar 17 16:08:47 foo cupsd[918]: [Client 128] Started "/nix/store/bkn53cvgh4vsnq16qsgm8d7xm0hn2smb-cups-progs/lib/cups/cgi-bin/printers.cgi" (pid=1710, file=13)
    Mar 17 16:08:47 foo cupsd[918]: PID 1710 (/nix/store/bkn53cvgh4vsnq16qsgm8d7xm0hn2smb-cups-progs/lib/cups/cgi-bin/printers.cgi) exited with no errors.

Technical details

System: NixOS  16.09.1836.067e66a (Flounder)
Nix version: nix-env (Nix) 1.11.7
Nixpkgs version: 16.09.1836.067e66a

Side note: 16.09 is expected to be supported only until about the end of the month.  (But I don't know if this particular issue has been fixed yet, e.g. in 17.03.)

Then, maybe this should be tested against 17.03, @bugaev did you upgrade already?

@vcunat @jpotier: I have installed 17.03 on a different system, from scratch. The same error messages persist in both CUPS Web interface and in a log of "cups.service":
Apr 06 17:43:13 irene cupsd[929]: Traceback (most recent call last):
Apr 06 17:43:13 irene cupsd[929]: File \"/nix/store/z14zvcilg3f44syrjnajzfqw2612c22i-hplip-3.16.5/lib/cups/filter/.hpps-wrapped\", line 204, in <module>
Apr 06 17:43:13 irene cupsd[929]: p = subprocess.Popen([\'hostname\', \'-s\'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Apr 06 17:43:13 irene cupsd[929]: File \"/nix/store/4ka2jqn62q0nd9ilihihb2a12zp1ni7r-python-2.7.13/lib/python2.7/subprocess.py\", line 390, in __init__
Apr 06 17:43:13 irene cupsd[929]: errread, errwrite)
Apr 06 17:43:13 irene cupsd[929]: File \"/nix/store/4ka2jqn62q0nd9ilihihb2a12zp1ni7r-python-2.7.13/lib/python2.7/subprocess.py\", line 1024, in _execute_child
Apr 06 17:43:13 irene cupsd[929]: raise child_exception
Apr 06 17:43:13 irene cupsd[929]: OSError: [Errno 2] No such file or directory
Apr 06 17:43:13 irene cupsd[929]: STATE: -connecting-to-device
Apr 06 17:43:13 irene cupsd[929]: STATE: -media-empty-error,media-jam-error,hplip.plugin-error,cover-open-error,toner-empty-error,other
Apr 06 17:43:13 irene cupsd[929]: PID 1659 (/nix/store/5v0sch1w3p8nspzx4frp8havqch2dlrx-cups-progs/lib/cups/filter/hpps) stopped with status 1.

Had the same issue with a HP Envy 5530, but upgrading to the latest unstable (17.09pre105060.0a6a06346a) fixed the problem.

@ericsagnes  Thank you for letting us know! I wonder if you updated all your system packages from the unstable branch or there is a trick to install only hplip.

I have upgraded the system to
> nixos-version
17.09pre105060.0a6a06346a (Hummingbird)

The error messages are the same.
Then I realized that the driver picker started by
$(nix-build '<nixpkgs>' --no-out-link -A hplip)/bin/hp-setup
offers hp-laserjet_500_color_m551-ps.ppd.gz exactly matching the model of my printer, which is not offered by the CUPS Web interface. That made me think that hp-laserjet_500_color_m551-ps.ppd.gz is tainted somehow and I better try some other driver that is in the options offered by the CUPS.
I made a short in the dark and picked "HP Color LaserJet 5, hpcups 3.16.11" from the CUPS list.
The selected driver works fine with my printer.

Great \o/
So, your problem is solved, right? If so, it may be time to close this issue.

Closing the issue with a word of advice: after finishing with hp-setup, go to the CUPS Web interface and make sure your driver is one of the options there, too. If not, choose something else.

Just in case it helps someone : I had a similar problem and it was solved by enabling printing with hplipWithPlugin as well as installing hplip in environment.systemPackages.


Skip the default delegate if we already have set up one delegate.

This pr try to fix the issue at:
https://github.com/tensorflow/tensorflow/issues/42757
When we use the xnnpack delegate, we will see the following error message:
/tensorflow/tensorflow/lite/build$ ./examples/label_image/label_image -m ~/mobilenet_v1_1.0_224.f32.tflite -l ~/labels.txt -i /tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp -p 1 -x 1
INFO: Loaded model /home/jerrys/mobilenet_v1_1.0_224.f32.tflite
INFO: resolved reporter
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO: Use XNNPACK acceleration.
INFO: Applied XNNPACK delegate.
ERROR: ModifyGraphWithDelegate is disallowed when graph is immutable.
ERROR: Ignoring failed application of the default TensorFlow Lite delegate indexed at 0.

The messages comes from the following ModifyGraphWithDelegate() and AllocateTensors() calls.
https://github.com/tensorflow/tensorflow/blob/fb7d34de0a7a892d070104aa4e385159817e7ef5/tensorflow/lite/tools/benchmark/benchmark_tflite_model.cc#L635
https://github.com/tensorflow/tensorflow/blob/fb7d34de0a7a892d070104aa4e385159817e7ef5/tensorflow/lite/tools/benchmark/benchmark_tflite_model.cc#L725
When we setup xnnpack delegate in ModifyGraphWithDelegate(), the graph will become immutable. Then, we call AllocateTensors() and apply the default delegate in "lazy_delegate_providers_" again. That will show the error message that we are trying to update the immutable graph using the delegate in "lazy_delegate_providers_".
So, I just clear the "lazy_delegate_providers_" if we already set up a delegate.

cc @multiverse-tf @Maratyszcza

@multiverse-tf could you review this PR?


ValueError: The denominator's sign must be known

Describe the bug
I was trying to solve a fractional optimization problem which turns out to be a DQCP.
After suceesfull reduction to a family of DCP problems for bisection, it Raised error:
ValueError("The denominator's sign must be known.")
Anyone knows what's wrong?
To Reproduce
import cvxpy as cp
cov_barra_f = np.random.rand(400,400)
cov_barra_f = cov_barra_f.T@cov_barra_f
ret_pred = np.ones(400)
thresh = 0.005
w = cp.Variable(len(ret_pred),pos = True)
ret = np.array(ret_pred) @ w
risk = cp.quad_form(w,cov_barra_f)
gamma = 500
prob = cp.Problem(cp.Maximize(ret/(gamma*risk)), [cp.sum(w) == 1, w>=0, w <= thresh])
prob.solve(qcp = True, verbose = True)
Expected behavior
prob.is_dqcp() is true and the prob is solvable by LFGBS(very slow when go to large dimension though). So I expect cvxpy should generate a result.
Output
ValueError                                Traceback (most recent call last)
 in
9 gamma = 500
10 prob = cp.Problem(cp.Maximize(ret/(gamma*risk)), [cp.sum(w) == 1, w>=0, w <= thresh])
---> 11 prob.solve(qcp = True, verbose = True)
12
/home/anaconda3/lib/python3.8/site-packages/cvxpy/problems/problem.py in solve(self, *args, **kwargs)
479         else:
480             solve_func = Problem._solve
--> 481         return solve_func(self, *args, **kwargs)
482
483     @classmethod
/home/anaconda3/lib/python3.8/site-packages/cvxpy/problems/problem.py in _solve(self, solver, warm_start, verbose, gp, qcp, requires_grad, enforce_dpp, ignore_dpp, **kwargs)
997                 chain = Chain(problem=self, reductions=reductions)
998                 soln = bisection.bisect(
--> 999                     chain.reduce(), solver=solver, verbose=verbose, **kwargs)
1000                 self.unpack(chain.retrieve(soln))
1001                 return self.value
/home/anaconda3/lib/python3.8/site-packages/cvxpy/reductions/reduction.py in reduce(self)
92               "The reduction was constructed without a Problem.")
93
...
---> 68         raise ValueError("The denominator's sign must be known.")
69
Version

OS: Linux
CVXPY Version: 1.2.0

Additional context
Add any other context about the problem here.

Is this actually the problem you want to solve or just a simplification of something more complicated you were working on? Because the problem itself can be easily formulated as DCP
import cvxpy as cp
import numpy as np
n=400
cov_barra_f = np.random.rand(n,n)
ret_pred = np.ones(n)
thresh = 0.005
w = cp.Variable(n)
prob = cp.Problem(cp.Minimize(cp.quad_over_lin(cov_barra_f@w, ret_pred@w)), [cp.sum(w) == 1, w>=0, w <= thresh])
prob.solve(verbose = True)

(note that my cov_barra_f is the factor, ie. the original one before doing A.T@A, in other words I am using quad_form(w,A.T@A) = sum_squares(A@w), I minimize x/y instead of maximizing y/x and I skipped gamma which only rescales the objective).

Is this actually the problem you want to solve or just a simplification of something more complicated you were working on? Because the problem itself can be easily formulated as DCP
import cvxpy as cp
import numpy as np
n=400
cov_barra_f = np.random.rand(n,n)
ret_pred = np.ones(n)
thresh = 0.005
w = cp.Variable(n)
prob = cp.Problem(cp.Minimize(cp.quad_over_lin(cov_barra_f@w, ret_pred@w)), [cp.sum(w) == 1, w>=0, w <= thresh])
prob.solve(verbose = True)

(note that my cov_barra_f is the factor, ie. the original one before doing A.T@A, in other words I am using quad_form(w,A.T@A) = sum_squares(A@w), I minimize x/y instead of maximizing y/x and I skipped gamma which only rescales the objective).

Doing a QR decomposition is a great idea. Actually  my risk is cp.sqrt(w.T@cov_barra_f@w) and I want to maximize (ret_pred@w/cp.sqrt(w.T@cov_barra_f@w)).  This doesn't seems convex to me.

@soga409 That is even easier in some sense, by homogenization. See https://docs.mosek.com/modeling-cookbook/cqo.html#maximizing-the-sharpe-ratio and let me know if you need more details.

@aszekMosek  Thanks for your help. I tried both Conic Programing and QuasiConvex programing. They both worked now. After homogenization, The problem takes much longger than I expected. It took me around 5 mins when I dealt with around 1700 stocks. I might want to deal with like 4000 stocks in the future, do you have any suggestions to speed up?
Here is my code:
import cvxpy as cp
ret_pred = ret_pred.loc[stock_list_barra]
thresh = 0.005
t = cp.Variable(1)
y = cp.Variable(len(ret_pred),pos = True)
r = np.linalg.qr(cov_barra_f)[1]
prob = cp.Problem(cp.Minimize(t), [t >= cp.norm(r@y), np.array(ret_pred)@y ==1, y <= thresh* cp.sum(y)])
prob.solve(verbose = True)

@soga409 You want linalg.cholesky and not linalg.qr. You must have cov=A.T@A so that x.T@cov@x = norm(A@x).
5 minutes seems way too long. This is a fairly standard problem that normally should be solved at most in seconds. Maybe you should investigate the log to see what takes so long and perhaps use a different solver. Hard to say without seeing your full run.
If you have a factor model then you can exploit that not to compute and then factor the full dense covariance matrix, and then typically get an extremely efficient model. See https://docs.mosek.com/portfolio-cookbook/factormodels.html and the factor model section of https://colab.research.google.com/github/cvxgrp/cvx_short_course/blob/master/applications/portfolio_optimization.ipynb#scrollTo=em0pOINs10U8
Maybe the discussion should continue elsewhere. This does not look like an issue with cvxpy. For example I can invite to https://groups.google.com/g/mosek


Add Inequality Comparisons to Rules

Is your feature request related to a problem? Please describe.

It would be helpful to be able to compare if something is GREATER_THAN or GREATER_THAN_OR_EQUAL to a value, e.g. if the current timestamp is greater a particular timestamp.
Describe the solution you'd like

Add the following to the comparison operators:

GREATER_THAN
GREATER_THAN_OR_EQUAL
LESS_THAN
LESS_THAN_OR_EQUAL
NOT_EQUAL

Alternatively, provide a documented way to add custom (i.e. user-supplied) conditions to the mapping_by_action set used in _match_by_action.
Describe alternatives you've considered

Additional context

Hey @gwlester - Thanks a lot for another feature request ;)
I think a user supplied would be great here - it can unlock many other use cases customers might want.
cc @risenberg-cyberark @whardier

I agree.  I may attempt to patch that in.  It would allow for some useful pre optimization as well (re.compile)

It would also be nice if the init took a logger and o ly created one if None was passed.Sent from my T-Mobile 4G LTE Device
-------- Original message --------From: "Shane R. Spencer" @.> Date: 9/25/21  13:33  (GMT-06:00) To: awslabs/aws-lambda-powertools-python @.> Cc: Gerald Leter @.>, Mention @.> Subject: Re: [awslabs/aws-lambda-powertools-python] Add Inequality Comparisons to Rules (#701)
I agree.  I may attempt to patch that in.  It would allow for some useful pre optimization as well (re.compile)
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

It would also be nice if the init took a logger and only created one if None was passed.

Maybe this could be combined with feat(feature_flags): add in feature_flags RE_* actions and update tests/docs #692
?

Let’s crate a separate one so it’s easier to know this is a thing for
customers reading Changelog/Release notes.
I want to accept a Logger instance everywhere in 2.0
On Sat, 25 Sep 2021 at 19:16, Gerald Leter @.***> wrote:

Maybe this could be combined with feat(feature_flags): add in
feature_flags RE_* actions and update tests/docs #692
https://github.com/awslabs/aws-lambda-powertools-python/pull/692/files?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-lambda-powertools-python/issues/701#issuecomment-927190032,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZPQBBSD2AQDYEQYIIJH4TUDZC5FANCNFSM5EXUIYGA
.

Ok, do you want a separate ticket to track "accept a Logger instance everywhere in 2.0"??
Note -- that should not need a major revision roll since if the code looks like the following it is compatiable:
   def __init__ (self, logger=None):
       if logger == none:
           logger = logging.getLogger(__name__)

Is equivalent.

@heitorlessa  @gwlester  When I created the feature, I didnt want to add too many actions right at the begining but to start with sometihng that covers my basic needs. It's great that people are using it and we should add more actions.
The only concern i have is regarding schema validation here for condition value, should we keep it as it is today - just check that it's not empty, or perhaps enforce more validation in case it's greater than (check int/float etc.). what do you think?

and bring your own logger should definitely be supported.

Only one separate ticket for supporting Logger in the feature flags
utility. Feature flags is also beta so I’m not worried in genera as we’ve
been waiting for customer feedback to improve it overall
On Sun, 26 Sep 2021 at 00:45, Gerald Leter @.***> wrote:

Ok, do you want a separate ticket to track "accept a Logger instance
everywhere in 2.0"??
Note -- that should not need a major revision roll since if the code
looks like the following it is compatiable:
def init (self, logger=None):
if logger == none:
logger = logging.getLogger(name)
Is equivalent.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-lambda-powertools-python/issues/701#issuecomment-927193847,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZPQBG7HIPANCRQUDTVFF3UDZGJJANCNFSM5EXUIYGA
.

@heitorlessa, done see Allow bring your own logger to Feature Flags #702

@heitorlessa @gwlester When I created the feature, I didnt want to add too many actions right at the beginning but to start with sometihng that covers my basic needs. It's great that people are using it and we should add more actions. The only concern i have is regarding schema validation here for condition value, should we keep it as it is today - just check that it's not empty, or perhaps enforce more validation in case it's greater than (check int/float etc.). what do you think?

I'd not add any additional checking.  An exception today causes a failed condition and that is enough.

I think the conditions need to be named clearer than I suggeted:

KEY_GREATER_THAN_VALUE
KEY_GREATER_THAN_OR_EQUAL_VALUE
KEY_LESS_THAN_VALUE
KEY_LESS_THAN_OR_EQUAL_VALUE
KEY_NOT_EQUAL_VALUE

I will attempt to do a Pull Request for the above on 2021.10.01

I personally don't like how the exception is handled in the case where matching the value of False (which results in True) would match an exception.  Not sure if this is intended to allow for exceptions to act this way by design and not disrupt the process.

@heitorlessa, done see Allow bring your own logger to Feature Flags #702

Thanks a lot for that - I've just made the necessary changes and merged it.

@heitorlessa, will this one make next week's release?

If anyone could help getting the tests and merge conflicts in place by Monday EOD, yep it will ;-)

Tests and conflicts are done.

@heitorlessa -- I think this should have the label: status/staged-next-release

Yes! Added earlier but was offline - all good to be released either
tomorrow or Wed the latest
On Mon, 4 Oct 2021 at 15:14, Gerald Leter @.***> wrote:

@heitorlessa https://github.com/heitorlessa -- I think this should have
the label: status/staged-next-release
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-lambda-powertools-python/issues/701#issuecomment-933472348,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZPQBDMR2BJ62KETTM3MPDUFGSDNANCNFSM5EXUIYGA
.

This is now available as part of today's 1.21.0 release -- Thank you for the contribution, credits given at the top ;)
https://github.com/awslabs/aws-lambda-powertools-python/releases/tag/v1.21.0


Bump abacus in broker

Coverage remained the same at 91.907% when pulling<PHONE_NUMBER>be1b684cd902ff9adf5918a2b81654 on SAP:bump_again into ccf9dbb42904b2f3c454d449562462ba2ceb57e5 on cloudfoundry-incubator:master.


Can't clear cacheProxy from API when Audit is enable

Hi,
First thank you for your awesome tool FF4J!
I think I found a problem, this is how I instanciate my FF4J Bean (with springboot):
FF4j ff4j =  new FF4j();
RedisConnection redisConnection = prepareRedisConnection();
FeatureStoreRedis fsRedis = new FeatureStoreRedis(redisConnection);
PropertyStoreRedis psRedis = new PropertyStoreRedis(redisConnection);
FF4JCacheManager cacheManager = new InMemoryCacheManager();

FF4jCacheProxy proxy = new FF4jCacheProxy(fsRedis, psRedis, cacheManager);

//Enable Supervision
ff4j.audit();

ff4j.setFeatureStore(proxy);
ff4j.setPropertiesStore(proxy);

return ff4j;

I want to clear cache, call API with :  /ff4j/store/clearCache
I got a 404 with this code but if I disable Audit: it's work.
After Some research I think this method from FeatureStoreServices should be modified:
public void clearCachedFeatureStore() {
    if(this.ff4j.getFeatureStore() instanceof FF4jCacheProxy) {
      ((FF4jCacheProxy)this.ff4j.getFeatureStore()).getCacheManager().clearFeatures();
    } else {
      throw new FeatureStoreNotCached();
    }
  }

To accept FeatureStoreAuditProxy class.

Nice catch. Indeed if you enable audit then it's a proxy (Audit) of proxy (Cache) but you will throw exception.
Let me come up with something that work with any level of "proxy".

Ok no problem 👍

Part of 1.6.4 released 2017_05_01


Make the timeline component care less about dates

Review app deployed to https://teaching-vacancies-review-pr-3121.london.cloudapps.digital


test(server): Add basic server unit tests

Adds 4 unit tests for the server:

should start the web server after all files have been preprocessed
successfully
should start the web server after all files have been preprocessed
with an error
should launch browsers after the web server has started
should try next port if already in use

@Dignifiedquire these are the tests that should cover #1429

Sweet thanks a lot! Now this file is not a large excuse to write no test for the server anymore :)


Decorators are intereferring with property definitions

TypeScript Version:  2.1.5
NodeJS Version: 7.3.0
Code
test.ts
function Field(typ: any) {
  return (target, prop) => target;
}

class Base {
  @Field(String)
  name: string;
}

let b = new Base();
b.name = 'test';
console.log(b.name);

Expected behavior:
When I run: tsc -t es2015 test.ts --experimentalDecorators; node test
Output should be: 'test'
Actual behavior:
Output is: undefined
Removing the decorator resolve the issue, but it seems like it is tied to the Object.defineProperty.

Was tracking down an issue, and incorrectly reproduced the Property decorator which should not return anything.


Add a method to check if the default route is present.

Tests running here -> https://beta-jenkins.mcc.schubergphilis.com/job/cosmic/job/0002-tracking-repo-branch-build/62/

Integration tests running here -> https://beta-jenkins.mcc.schubergphilis.com/job/cosmic/job/0500-run-integration-tests/87/console

@borisroman the tests failed due to a typo in a variable. We have to revert it.


build won't work without lib directory

It looks like build.xml won't work if there is not a directory called lib present regardless of whether it is empty or not. Ideally this would be fixed in the build.xml but perhaps just adding a .gitkeep in an otherwise empty directory would be easier. At the very least, the compilation instructions should include this.

this has been fixed on skyline


Chore: Fix urls and README for cerebral-legacy

Hmm, I seem to have lost write access to this repo. @christianalfoni or @Guria will have to merge.


VS2017 new syntax and SA0102

Just installed VS2017 and StyleCop resharper extension.  VS2017 suggests me to use this syntax:
if (this.SelectedItem is MyItem selectedItem)
{
    ...
}

Instead of the old one:
var selectedItem = this.SelectedItem as MyItem;
if (selectedItem != null)
{
    ...
}

However, I get SA0102 and I can't suppress it... It also doesn't show the rest of warnings and suggestions if I don't change it.
I know that this is not the ReSharper extension repo but their issues section is closed so I didn't know where to write about this problem.

Ok I searched issues tracker for SA0102 and I found that this extension does not support C# 6 and this "new VS2017 syntax" is actually C# 7 so it's obviously not supported either.
Will install https://github.com/DotNetAnalyzers/StyleCopAnalyzers now hope it does support C# 7.