Possible regression with routing solver with v9.5

Hi, congrats on the 9.5 release! Think I may have found a regression with the routing solver.
What version of OR-Tools and what language are you using?
Version: v9.5
Language: Python
Which solver are you using (e.g. CP-SAT, Routing Solver, GLOP, BOP, Gurobi) Routing Solver
What operating system (Linux, Windows, ...) and version? macOS 13
What did you do?
Ran the VRP example: https://developers.google.com/optimization/routing/vrp#entire_program1
What did you expect to see Maximum of the route distances: 1552m (like previous versions)
What did you see instead? Maximum of the route distances: 1712m

I'm seeing errors with that example for v9.4 and v9.3, but with v9.2, the output is:
Objective: 161408
Route for vehicle 0:
 0 ->  8 ->  6 ->  2 ->  5 -> 0
Distance of the route: 1552m

Route for vehicle 1:
 0 ->  7 ->  1 ->  4 ->  3 -> 0
Distance of the route: 1552m

Route for vehicle 2:
 0 ->  9 ->  10 ->  16 ->  14 -> 0
Distance of the route: 1552m

Route for vehicle 3:
 0 ->  12 ->  11 ->  15 ->  13 -> 0
Distance of the route: 1552m

Maximum of the route distances: 1552m

For v9.5, the output is:
Objective: 177500
Route for vehicle 0:
 0 ->  9 ->  10 ->  2 ->  6 ->  5 -> 0
Distance of the route: 1712m

Route for vehicle 1:
 0 ->  16 ->  14 ->  8 -> 0
Distance of the route: 1484m

Route for vehicle 2:
 0 ->  7 ->  1 ->  4 ->  3 -> 0
Distance of the route: 1552m

Route for vehicle 3:
 0 ->  13 ->  15 ->  11 ->  12 -> 0
Distance of the route: 1552m

Maximum of the route distances: 1712m

Just wanted to leave this here. With v9.4 I'm getting the correct output (1552m) but 1712m with v9.5!.

confirmed, the initial solution found by the first solution strategy PATH_CHEAPEST_ARC is a little bit odd.
just add in python:
    search_parameters.local_search_metaheuristic = (
        routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH)
    search_parameters.time_limit.FromSeconds(1)

Note: in this example we didn't want to introduce the GLS yet, so maybe will update the doc
also now we can see the improvement of the GLS over the initial strategy for first solution ;0

Enabling the solver log (only Path_Cheap_Arc), it seems both v9.4 and v9.5 start with Relocate and Cross operators. However, v9.4 ends with TwoOpt, and v9.5 ends with RelocateExpensiveChain.

note: AFAIK team worked on a dynamic sorting of operator/validator per complexity (ed 3 bins of set of operators) aka less complex validator are checked first (with the last failed first kind of LRU stuff) in order to improve the validation speed thus the search speed thus the solver should be able to explore more research space...

Thanks @Mizux, can confirm that fixes it.


amazon icon keeps spinning with no output

Hi
I have installed everything correctly and think i am very close to make it work. However when I say alexa I get a spinning circle which keeps on spinning and nothing happens after. I also get no sound when you call alexa.
Here are my npm logs:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start', 'dev' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose stack Error: missing script: start
4 verbose stack     at run (/usr/local/lib/node_modules/npm/lib/run-script.js:155:19)
4 verbose stack     at /usr/local/lib/node_modules/npm/lib/run-script.js:63:5
4 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:115:5
4 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:418:5
4 verbose stack     at checkBinReferences_ (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:373:45)
4 verbose stack     at final (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:416:3)
4 verbose stack     at then (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:160:5)
4 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:280:12
4 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:90:16
4 verbose stack     at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:532:3)
5 verbose cwd /home/pi/MagicMirror/modules/MMM-awesome-alexa
6 verbose Linux 4.14.79-v7+
7 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" "dev"
8 verbose node v9.9.0
9 verbose npm  v6.7.0
10 error missing script: start
11 verbose exit [ 1, true ]

and this when I run the npm logs in the modules folder:
npm ERR! path /home/pi/MagicMirror/modules/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2019-02-09T18_22_40_828Z-debug.log

Can anyone help please? @dolanmiu?
Thanks.

It could be related to this:
https://github.com/dolanmiu/MMM-awesome-alexa/issues/164#issuecomment-493762314
this is the solution which worked for @kackhaufen


dynamically changing list of items for ( items: ) does not update UI accordingly using MultiSelectChipField

So what im trying to do is filter lists of topics based on the the value of a selected subject through a map:
Map<String, List<Topic?>> subjectTopics = {
"": [Topic(id: 1, name: "Choose a subject")],
"Chemistry": [
Topic(id: 1, name: "Moles"),
],
"Maths": [
Topic(id: 1, name: "Series"),
Topic(id: 2, name: "Polynomials"),
]
};
List<Topic?> topics = subjectTopics[selectedSubject];
I update the value of the selected subject through setstate and then re-assign topics with the corresponding values from the map into a list.
The widget im trying to use is MultiSelectChipField<Topic?> which upon the initialised state displays the correct values however if I update the selected subject through setState the UI does not get updated.
The exception i get is "Looking up a deactivated widget's ancestor is unsafe", I have tried adding my map to didChangeDependancy as well however it did not work.
Is there any way i can update the MultiSelectChipField UI via changing the items: ? Any help would me much appreciated.

Same problem here !
Did you find solution for this?

Unfortunately not as of now

Same problem here !
Did you find solution for this?

Hello, please try again with version 4.1.3.


Am i doing something wrong?

What needs to be documented?
I have encountered a problem. Whenever i download the source engine i have some files missing, and when i try to test "Lime test windows" it has something to do with a missing file. for example the source folder is missing. Is it normal?

the source folder is missing

the example_mods folder is also missing

ik is this a glitch?

because i didnt get them when i downloaded it

CHEEE a mi me pasa lo mismo se pudo solucionar ?

o como puedo resolver el problema ?

nvm all i had to do is reinstall winrar.

o como puedo resolver el problema ?

tal vez pueda darte los archivos necesarios

nvm all i had to do is reinstall winrar.

if you fixed the issue
you should probably close it

Yeah, Correct

@Behoiler please close the issue. You have solved the issue.

No, he's having the same problem as I have. Windows 11 is deleting important files without our permission.


Voice Control number labels on iOS are not displaying consistently on first build

Steps to reproduce
This has been specific to our app, but it's a widget that has a stack with a textfield and an icon button. Whenever they appear on the screen, the numbering is not being displayed until a new rebuild.
Expected results
Numbering appears coherently, like the rest of the screen.
Actual results
Numbering is missing from the actionable widgets on first draw, but not on rebuild. Also, with VoiceOver, the widgets are selectable, but are not navigable to-from other widgets on the screen. They are isolated as if they were in a separate Semantics widget
Code sample
b/36788631, b/368197258
Screenshots or Video
b/36788631, b/368197258
Logs
n/a
Flutter Doctor output
[✓] Flutter (Channel google3, on macOS 14.7 23H124 darwin-arm64 (Rosetta), locale en)
• Framework revision edb4c84317 (1 days ago), 2024-10-16T00:00:00.000
• Engine revision c69ed59b01
• Dart version d916a5f69a
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15E204a

correcting reference above b/367886318

Thanks for the report @franciscojma86
Can you please provide a minimal reproducible code sample along with steps to replicate ? this will help to properly address the issue.


Selecting source instance for copy

I encountered a performance issue when copying data for an index launch. I assume this is a mapper issue, but not sure which mapper API is related to it.
The use case is simple. The index launch has multiple tasks using the same logical region with read-only privilege. I have seen that Legion generates sequential copies instead of parallelizable copies when preparing physical instances for the logical region. More specifically, let's say the logical region has a valid instance on GPU_0, and the index launch assigns tasks to GPU_1 and GPU_2. Legion runtime generates two sequential copies (GPU_0->GPU_1, then GPU_1->GPU_2) instead of parallel copies (GPU_0->GPU_1, and GPU_0->GPU_2).
Which mapper API should be changed to fix the issue?

It will depend on the kind of operation that triggered the copies, but most likely it will be select_task_sources. All the API calls that handle selecting the source of the copies are named like select_*_sources for the different kinds of operations. If you leave the output of this mapper call empty, the runtime can do whatever it wants, and I guarantee you there is no intelligent logic in the runtime for this. It just picks the first instance it finds.

It will depend on the kind of operation that triggered the copies, but most likely it will be select_task_sources. All the API calls that handle selecting the source of the copies are named like select_*_sources for the different kinds of operations. If you leave the output of this mapper call empty, the runtime can do whatever it wants, and I guarantee you there is no intelligent logic in the runtime for this. It just picks the first instance it finds.

Note that the order in which tasks are passed to the mapper will dictate what instances you can select for each (if T1 is mapped first then it will only see the instance on GPU0, then T2 will be able to use instances on both GPU0 and GPU1). Depending on the machine architecture, not every ordering will allow you to create the most efficient broadcast tree. You can try to work around this by changing the order of mapping in select_tasks_to_map, but collective instances is a much better solution to this problem, so I would just wait for that.

Note that the order in which tasks are passed to the mapper will dictate what instances you can select for each (if T1 is mapped first then it will only see the instance on GPU0, then T2 will be able to use instances on both GPU0 and GPU1). Depending on the machine architecture, not every ordering will allow you to create the most efficient broadcast tree. You can try to work around this by changing the order of mapping in select_tasks_to_map, but collective instances is a much better solution to this problem, so I would just wait for that.

I think in this case though order will not matter and it's actually fairly simple. The instance on GPU 0 is valid from the start, and we just want all the tasks downstream to pull from it instead of pulling from each other.

I think in this case though order will not matter and it's actually fairly simple. The instance on GPU 0 is valid from the start, and we just want all the tasks downstream to pull from it instead of pulling from each other.

@lightsighter Should I set the source_instances field in map_task in order to tell Legion which source instance to copy from?
I see that field in the mapper interface but haven't found any mapper that actually set that field.
      struct MapTaskOutput {
        std::vector<std::vector<PhysicalInstance> > chosen_instances;
        std::vector<std::vector<PhysicalInstance> > source_instances;
        std::vector<Memory>                         output_targets;
        std::vector<LayoutConstraintSet>            output_constraints;
        std::set<unsigned>                          untracked_valid_regions;
        std::vector<Processor>                      target_procs;
        VariantID                                   chosen_variant; // = 0
        TaskPriority                                task_priority;  // = 0
        TaskPriority                                profiling_priority;
        ProfilingRequest                            task_prof_requests;
        ProfilingRequest                            copy_prof_requests;
        bool                                        postmap_task; // = false
      };

@lightsighter Should I set the source_instances field in map_task in order to tell Legion which source instance to copy from?
I see that field in the mapper interface but haven't found any mapper that actually set that field.
      struct MapTaskOutput {
        std::vector<std::vector<PhysicalInstance> > chosen_instances;
        std::vector<std::vector<PhysicalInstance> > source_instances;
        std::vector<Memory>                         output_targets;
        std::vector<LayoutConstraintSet>            output_constraints;
        std::set<unsigned>                          untracked_valid_regions;
        std::vector<Processor>                      target_procs;
        VariantID                                   chosen_variant; // = 0
        TaskPriority                                task_priority;  // = 0
        TaskPriority                                profiling_priority;
        ProfilingRequest                            task_prof_requests;
        ProfilingRequest                            copy_prof_requests;
        bool                                        postmap_task; // = false
      };

I got this question from you too, but I don't see it anywhere on this page anymore.

@lightsighter Should I set the source_instances field in map_task in order to tell Legion which source instance to copy from?
I see that field in the mapper interface but haven't found any mapper that actually set that field.

I'll answer it anyway. If you actually know the instance(s) you want to use as sources ahead of time without waiting for the call back to select_task_sources then you can fill them in direction in the source_instances member for map_task. That can reduce the analysis runtime because it effectively preempts potentially many callbacks to select_task_sources. That's strictly a performance optimization, but a good one if you know what the answer should be.

I got this question from you too, but I don't see it anywhere on this page anymore.

@lightsighter Should I set the source_instances field in map_task in order to tell Legion which source instance to copy from?
I see that field in the mapper interface but haven't found any mapper that actually set that field.

I'll answer it anyway. If you actually know the instance(s) you want to use as sources ahead of time without waiting for the call back to select_task_sources then you can fill them in direction in the source_instances member for map_task. That can reduce the analysis runtime because it effectively preempts potentially many callbacks to select_task_sources. That's strictly a performance optimization, but a good one if you know what the answer should be.

@jiazhihao are there any open questions here or can we close out this issue?


RFC 7159 JSON Using Int and Double

For those of us who want something simple and Swifty:
public enum JSON {
    case object([String: JSON])
    case array([JSON])
    case integer(Int)
    case double(Double)
    case string(String)
    case boolean(Bool)
    case null
}

Per Apple's official The Swift Programming Language book, Int and Double are the most fundamental number types for Swift users and the most appropriate choice:

Unless you need to work with a specific size of integer, always use Int for integer values in your code.

The appropriate floating-point type to use depends on the nature and range of values you need to work with in your code. In situations where either type would be appropriate, Double is preferred.

https://github.com/open-swift/C7/pull/36#issuecomment-220512095
i like this one as well, but only if we add UInt and convenience initializers

but.. this one comes with another trade-off:
we'll need property like  isNumber and have to write 2 more cases while we could move/ignore this logic

Related to https://github.com/open-swift/docs/issues/9


log message

Concept ACK
Approach NACK. This open a DoS vector where an attacker can flood your logs by sending the same header over and over again.


simulate_queue_worker fails with ArgumentError: comparison of Fixnum with :DEBUG failed

Caused by https://github.com/ManageIQ/manageiq/pull/8085, but isn't broken for everybody (actually, isn't broken for @romanblanco only, AFAICT :)) .. could be ruby version related? (My exception is from 2.2.3)
irb(main):001:0> simulate_queue_worker
ArgumentError: comparison of Fixnum with :DEBUG failed
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/logger.rb:68:in `<'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/logger.rb:68:in `add'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/logger.rb:25:in `block (2 levels) in broadcast'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/2.2.0/logger.rb:452:in `error'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/log_subscriber.rb:85:in `rescue in finish'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/log_subscriber.rb:83:in `finish'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/fanout.rb:102:in `finish'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/fanout.rb:46:in `block in finish'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/fanout.rb:46:in `each'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/fanout.rb:46:in `finish'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/instrumenter.rb:42:in `finish_with_state'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activesupport/lib/active_support/notifications/instrumenter.rb:27:in `instrument'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:541:in `log'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:87:in `query'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:738:in `column_definitions'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb:222:in `columns'
... 9 levels...
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/relation/query_methods.rb:1179:in `block in preprocess_order_args'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/relation/query_methods.rb:1176:in `map!'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/relation/query_methods.rb:1176:in `preprocess_order_args'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/relation/query_methods.rb:337:in `order!'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/activerecord/lib/active_record/relation/query_methods.rb:333:in `order'
	from /home/himdel/manageiq/lib/vmdb/console_methods.rb:24:in `block in simulate_queue_worker'
	from /home/himdel/manageiq/lib/vmdb/console_methods.rb:23:in `loop'
	from /home/himdel/manageiq/lib/vmdb/console_methods.rb:23:in `simulate_queue_worker'
	from (irb):1
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/railties/lib/rails/commands/console.rb:65:in `start'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/railties/lib/rails/commands/console_helper.rb:9:in `start'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/railties/lib/rails/commands/commands_tasks.rb:78:in `console'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/railties/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
	from /home/himdel/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/rails-597fa0b42f90/railties/lib/rails/commands.rb:18:in `<top (required)>'
	from bin/rails:4:in `require'
	from bin/rails:4:in `<main>'

Fix
-      Rails.logger.level = :DEBUG
+      Rails.logger.level = Logger::DEBUG


CAMEL-19058: cache the producer and endpoint locally to avoid hitting the type check scalability issue

This reworks the patch originally added on  907a9d0c08d40c5308bb440ec9ebaaa4d7544dc4 so that there is no side effect when handling singleton endpoints

Folks, I am marking this one as a draft. I am thinking about linking a few related PRs, so it may be easier to look at the whole set of changes together.

I am back at looking at this one. The patch is (likely) fine, but I want to review the results one more time.


Create API for use by other plugins

Refactor and add public methods so outside plugins could access this and use it to send data to Discord.

This is still on the roadmap. Once completed, I will probably submit the plugin to the official Obsidian release process. But no timeline on this yet.


render_depth.py doesn't save exr files

When I execute the render_depth.py file it doesn't save any EXR files. I can see the depth images in the buffer while the code is running it just doesn't save the OpenEXR files into the folder.
The folders for exr and for every file is created but they are just empty.
Here is my Blender. log if i keep it running until the end:
Progress:   0.00%
(  0.0000 sec |   0.0000 sec) Importing OBJ '/home/matthias/Blender/render/dataset_train/01234567/0706.obj'...
Progress:   0.00%
(  0.0001 sec |   0.0000 sec) Parsing OBJ file...
Progress:   0.00%
(  0.2095 sec |   0.2094 sec) Done, loading materials and images...
Progress:  33.33%
(  0.2098 sec |   0.2098 sec) Done, building geometries (verts:30375 faces:10278 materials: 1 smoothgroups:0) ...
Progress:  66.67%
(  0.3019 sec |   0.3018 sec) Done.
Progress:  66.67%
Progress: 100.00%
(  0.3020 sec |   0.3020 sec) Finished importing: '/home/matthias/Blender/render/dataset_train/01234567/0706.obj'
Progress: 100.00%
Progress: 100.00%
test
Saved: 'buffer.png'
Time: 00:00.12 (Saving: 00:00.04)
Rendered
[1;31mERROR (bke.lib_id): source/blender/blenkernel/intern/lib_id.c:323 id_us_min: ID user decrement error: MADots Stroke (from '[Main]'): 0 <= 0
ERROR (bke.lib_id): source/blender/blenkernel/intern/lib_id.c:323 id_us_min: ID user decrement error: MADots Stroke (from '[Main]'): 0 <= 0
And here is my Blender.log file (after I used Keyboard Interrupt when no EXR files appeared)
Progress: 0.00%
( 0.0000 sec | 0.0000 sec) Importing OBJ '/home/matthias/Blender/render/dataset_train/01234567/0022.obj'...
Progress: 0.00%
( 0.0001 sec | 0.0000 sec) Parsing OBJ file...
Progress: 0.00%
Error: Python: Traceback (most recent call last):
File "/snap/blender/3082/3.4/scripts/addons/io_scene_obj/init.py", line 133, in execute
return import_obj.load(context, **keywords)
File "/snap/blender/3082/3.4/scripts/addons/io_scene_obj/import_obj.py", line 1010, in load
if len(line_split) == 1 and not context_multi_line and line_start != b'end':
KeyboardInterrupt
Location: /snap/blender/3082/3.4/scripts/modules/bpy/ops.py:113
Error: Python: Traceback (most recent call last):
File "/home/matthias/Blender/render/render_depth.py", line 118, in
bpy.ops.import_scene.obj(filepath=model_path)
File "/snap/blender/3082/3.4/scripts/modules/bpy/ops.py", line 113, in call
ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Python: Traceback (most recent call last):
File "/snap/blender/3082/3.4/scripts/addons/io_scene_obj/init.py", line 133, in execute
return import_obj.load(context, **keywords)
File "/snap/blender/3082/3.4/scripts/addons/io_scene_obj/import_obj.py", line 1010, in load
if len(line_split) == 1 and not context_multi_line and line_start != b'end':
KeyboardInterrupt
Location: /snap/blender/3082/3.4/scripts/modules/bpy/ops.py:113
Error: File format is not supported in file '/home/matthias/Blender/render/dataset_train'
Error: argument has no '.blend' file extension, not using as new file, exiting! /home/matthias/Blender/render/dataset_train
Saved session recovery to '/tmp/quit.blend'
Blender quit
Could you please help me with that issue? Thank you very much in advance.

same, any updates?

@WiktorLigeza @wizardlf Blender 2.79, OpenEXR 1.3.2, and change the open3d function name in process_exr.py, It successes.


[Feature Request] Add Discord Webhooks

Have you read the Important information text above

[X] Yes i did

Describe the feature
Discord Webhook with corresponding optional notifications for player joining{current player count same message), server start, server close.
Additional information

[ ] Would you be willing to help implement this feature?

Final checks

[X] I understand that this is a feature request function. I also unterstand that if i use this to report a bug report, that my issue might be un-answered closed.

This isn't something the maintainer is going to do IMO.
If you'd like to do it I'll provide a solution.

Setup a Web Server (Use express or something along those lines)
Make it use commands over an RCON client on an interval (You can use https://github.com/radj307/ARRCON, or some language specific library)
Setup a discord webhook to publish this data
Profit!

I personally setup a similar solution to monitor my server on HomeAssisant

Hey @SLYROOKO
Could you please add an example scenario on how you would like this to work?
Because im pretty sure i can do online interval updates and send that to somewhere.
Afaik the "player-joined-event" and something similar is afaik NOT accessable to me or the user, as well as other events.
Server-Start and Interval-tasks like Backup and Restarts and Stop would be, i think, the only option to "send something somewhere".
But please explain what you mean in more detail.

I was going to suggest monitoring the logs to get these events, but I see there is no way to get player login events. Maybe instead for now a hourly update of current players online and a list of usernames could be obtained from the rcon with admin command "/ShowPlayers" and parse that output.

@jammsen

Hey @ericellb - I dont want to be mean, but how about we listen first and then assume the assumable? 😄

I'm all for listening, I didn't mean to step on any toes.
However I believe in the Unix Philosophy, and that a tool like this is best suited as its own image/service. I want to say love your maintenance on this so far, running smooth!

I was going to suggest monitoring the logs to get these events, but I see there is no way to get player login events.

Yeah 😢

Maybe instead for now a good alternative would be an hourly update of current players online and a list of usernames, which could be obtained from the rcon with admin command "/ShowPlayers" and parse that output.

Yeah but im not sure if i would make a parser for this

ENV var to set webhook URL
ENV var for Custom Server Start Message and Server Shutdown message etc.

Would be 1 webhookurl and 9 VARS setup 3 events (title, description, color)
Example here:

Thats just a test, would that be suffiecent?

Yep, perfectly suits my use case.

Actually, I just wrote a similar script to monitor the player online and offline.
We can get the player online status by rcon, and regular update the data in our script, so that we can know player is online or offline when a new record appears or disappears.
BTW, I register a bot to discord to be want to do more things, so here is the code snip.
class PalworldBot(discord.Client):
    prev_online_players = []

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    async def setup_hook(self) -> None:
        # create the background task and run it in the background
        self.check_online_players.start()

    async def on_ready(self):
        print(f'Logged on as {self.user}!')
        print('------')

    async def get_online_players(self):
        timeout = 1
        command = "showplayers"
        #print("get_online_players()")
        players = []
        text = await rcon(command, host=rcon_addr, port=rcon_port, passwd=rcon_passwd, timeout=timeout)
        if text:
           print(text, flush=True)
           for line in text.splitlines():
               player = line.split(',')
               if len(player) != 3:        # not player
                   continue
               if player[0] == 'name':     # it's title
                   continue
               players.append(player)

        return players

    @tasks.loop(seconds=30)  # task runs every 30 seconds
    async def check_online_players(self):
        await self.wait_until_ready()
        online_players = await self.get_online_players()
        print(f"online_players = {online_players}")
        print(f"prev_online_players = {self.prev_online_players}")

        msg = ""
        channel = self.get_channel(discord_channel)  # channel ID goes here
        for player in online_players:
            if player not in self.prev_online_players:
                print(f"Player {player[0]} is online")
                msg = f"Player {player[0]} is online"
                await channel.send(msg)
        for player in self.prev_online_players:
            if player not in online_players:
                print(f"Player {player[0]} is offline")
                msg = f"Player {player[0]} is offline"
                await channel.send(msg)

        self.prev_online_players = online_players

Hey @SLYROOKO @acelan
Would you be able for a Call in Discord to talk about this?
I think the topic is up to a certain point easy to solve, BUT after that point this topic explodes with complexity.
My timezone is Germany. What would be yours?

Hey @SLYROOKO @acelan
I have added a start and stop function already pushed this to master.
Please go ahead and try it out and give me feedback and please tell me if you would you be able for a Call in Discord to talk about this?

I'm U.S. East. I'll give it a test tonight and write my findings here. As for complexity of this topic, I assume it becomes a issue of use case.  For me it is useful because it's a way to notify players of a server "hey your friends are playing right now" and "You can't log on? it's the server". Is there a particular use case you wanted to discuss? If so I have some time this weekend?

Working for Starting, Updating and Installing messages. Can't seem to get Server Stopped message to work.

Running on Synology Nas

I can see the 3 discord webhook messages shown correctly on my discord server.

Is there a particular use case you wanted to discuss? If so I have some time this weekend?
@acelan @SLYROOKO Yes, use-case of "online-players"
I dont now both of your timezones but im fine with the weekend or with late evening for me an like afternoon for you guys?

I'm fromTaiwan +8 timezone. I'm available all day from tomorrow, and the whole week next week. So, ping me anytime when you want to chat with me.

Would be easier if you guys are in the Discord @acelan  @SLYROOKO

Working for Starting, Updating and Installing messages. Can't seem to get Server Stopped message to work.

You need to have the option enabled, in the same section in this script its writing the other messages you have. https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/servermanager.sh#L52

Joined the DIscord. And yes WEBHOOK_ENABLED = true. I'm getting the other webhook messages, just not send_webhook_notification "$WEBHOOK_STOP_TITLE" "$WEBHOOK_STOP_DESCRIPTION" "$WEBHOOK_STOP_COLOR". It may have to do with the way container's are stopped in my OS seeing that other people are not seeing this problem. I suspect that all the processes stop before getting to that line.
Can somebody else running on synology os verify this?

Hey @SLYROOKO
I have added this to the term_handler which handles the clean-save-shutdown see here but your OS might just handle things in another weird way that doesnt trigger stuff in a good and normal way.
i could just move it to after https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/servermanager.sh#L74 Line 74.
Not sure if thats a clean way for the other stops though, would need to test that.

Hey @SLYROOKO
i have added another mechanic to catch other signals, i hope, with that, the new develop image is just done baking, please go ahead and try it out for me okay?
Feedback is a must 🤣 Need to know if that works and can be released to prod/latest.

Didn't work

Hey @SLYROOKO - I tested it on 3 systems with 3 different tools and did work everywhere. I caught everything i could catch fresh a shell POV i think.
Questions:

Did you force download the latest develop (not latest) and did docker-compose down and after that up again?
Whats your setup to work with Docker - Please explain in detail.

Yes, used [https://hub.docker.com/layers/jammsen/palworld-dedicated-server/develop/images/sha256-d93a14a2e88eb5260bceed218d631ce6d8c7398d8cd0713650eced69e922b0bf?context=explore]
OS: Synology NAS
created a new instance of this image on container manager program
Expected Behavior: After steam update and server is running fine, i stop the container expecting the server termination message.
Actual: I see all the other webhook messages get sent. except the Server termination message. Logs show "broadcasted done"

@SLYROOKO Thats why i wanted a call with you on the weekend 😞 but nothing happend.
I think Synology doesnt respect signal codes here, because very covered 2 out of 2 cases how the system will be terminated.

The update is now on master/latest

Would it be possible to add support for webhooks in multiple discord servers?

Rework into an array would work but we don't want to break existing configs that expect the variable to be just a string right? So maybe we can add another variable? Or is there some fancy shell script logic to check whether the variable has a string or a list in it?

@calvinli723 Well some dark voodoo shell magic is always possible like checking if there is an ( or ) in the variable.
But the other way works too. Add it to the Changelog, describe it as Breaking-Change and use an @ function in Discord or so.
I think its all a matter of communication and transparency. But you have a point, maybe you are the edge-cass under 150 users, who wants this as only 1 person.

Actually, I just wrote a similar script to monitor the player online and offline. We can get the player online status by rcon, and regular update the data in our script, so that we can know player is online or offline when a new record appears or disappears.
BTW, I register a bot to discord to be want to do more things, so here is the code snip.
class PalworldBot(discord.Client):
    prev_online_players = []

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    async def setup_hook(self) -> None:
        # create the background task and run it in the background
        self.check_online_players.start()

    async def on_ready(self):
        print(f'Logged on as {self.user}!')
        print('------')

    async def get_online_players(self):
        timeout = 1
        command = "showplayers"
        #print("get_online_players()")
        players = []
        text = await rcon(command, host=rcon_addr, port=rcon_port, passwd=rcon_passwd, timeout=timeout)
        if text:
           print(text, flush=True)
           for line in text.splitlines():
               player = line.split(',')
               if len(player) != 3:        # not player
                   continue
               if player[0] == 'name':     # it's title
                   continue
               players.append(player)

        return players

    @tasks.loop(seconds=30)  # task runs every 30 seconds
    async def check_online_players(self):
        await self.wait_until_ready()
        online_players = await self.get_online_players()
        print(f"online_players = {online_players}")
        print(f"prev_online_players = {self.prev_online_players}")

        msg = ""
        channel = self.get_channel(discord_channel)  # channel ID goes here
        for player in online_players:
            if player not in self.prev_online_players:
                print(f"Player {player[0]} is online")
                msg = f"Player {player[0]} is online"
                await channel.send(msg)
        for player in self.prev_online_players:
            if player not in online_players:
                print(f"Player {player[0]} is offline")
                msg = f"Player {player[0]} is offline"
                await channel.send(msg)

        self.prev_online_players = online_players

Hey @acelan - i just added a playerdetection to the image, feel free to try it out, example screenshots are in Discord in the releases channel.

Can I turn off only player online notifications?
I just want it to be used to notify the server of the status of startup and shutdown.

Can I turn off only player online notifications? I just want it to be used to notify the server of the status of startup and shutdown.

https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/docs/ENV_VARS.md
Read the docs ...

I have read it, but I was too focused on the description of the WEBHOOK_* series.
After your reminder, I read it completely again and noticed that using RCON_PLAYER_DETECTION should be enough.
Thank you!


@samtstern yeah sure👍

@samtstern yeah sure👍
Originally posted by @Akshit94 in https://github.com/firebase/FirebaseUI-Android/pull/460#issuecomment-268850135

So #409 is still not fixed and this thread as well as #409 has been closed. Please re-open it or work from this one to get it fixed.


Callback function on click of sticky notification.

I am using toastr to show notification...I want to call a function to update some details when the notification is closed(i.e clicked on the notification)..Is there any way to do it with toastr.

Great plugin!!.

For the record, one should just be able to:
var x = toastr.info(...);
$(x.el).click(function(){ ... });

@bjorn-ali-goransson it didn't work for me with $(x.el).click(function(){ ... });.  I needed to use $(x).click(function(){ ... });


Streamed requests

+1 - looking forward to this.

+1

+1

If you point me in the right direction, I could probably start working on this. I really need it for a library I am developing, so if I can, I will try what I can.

+1 would like to see this.

+1 would like to see this.

@whoshuu, is there any progress on this topic?

@whoshuu , is there any progress on this topic? thanks!

I need it too, I'm using https://github.com/jpbarrette/curlpp in the meantime.

+1

+1

+1

+1


Add Postnord to Karpenter Adopters list

Fixes #N/A
Description
How was this change tested?
Does this change impact docs?

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

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

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 83.04%

Totals

Change from base Build<PHONE_NUMBER>1:
0.02%

Covered Lines:
5513

Relevant Lines:
6639

💛  - Coveralls


Vectorize segments

*Vectorizes the outer segmentation generation.

This PR doesn't make sense, it copies #74. Perhaps you should change the target onto @sebastiandro's branch https://github.com/sebastiandro/chemicalx/tree/mhcaddi-model


Docs to help with DShop's initial set up

As per #992, our repo needs clearer documentation to help new shop admins fill out the 'Server Configuration' page during the onboarding process.

@mikeshultz
When possible, please take a look at these proposed changes.
Gratefully,
Rajath

@mikeshultz,
Could you take a look at this if you're available, please?


EDM-349: ensure prefix logger shows caller context

This pr improves the prefix logger providing proper caller context which is critical for debug.
before (invalid caller)
time="2024-08-15T23:51:19Z" level=info msg="Enrollment request not yet approved" func="github.com/flightctl/flightctl/pkg/log.(*PrefixLogger).Info" file="/home/sbatsche/projects/flightctl/flightctl/flightctl/packaging/rpm/flightctl-latest/pkg/log/log.go:45"

after
time="2024-08-16T00:12:33.357585Z" level=info msg="Enrollment request not yet approved" file="agent/device/bootstrap.go:272"

Thank you!


Disconnect and reconnect issue

I read the source code to get a better knowledge of auto reconnect. I found that disconnect method sends a 'DISSCONNECT' frame and wait for a receipt before cleanup and close websocket.
There may be chances that websocket onClose is invoked when doing disconnect, so I think a disconnecting flag should be added to handle this situation.

Thanks for the find out. Would you mind opening a PR on this one?

I'm looking into a problem I'm encountering and I'm unsure if this is related.
I know WebSocket.send() closes the socket if the data cannot be sent (https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send), so I can see onClose being invoked before intended, but where/how does it "wait for a receipt" before cleanup?

I'm looking into a problem I'm encountering and I'm unsure if this is related.
I know WebSocket.send() closes the socket if the data cannot be sent (https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send), so I can see onClose being invoked before intended, but where/how does it "wait for a receipt" before cleanup?

You double posted your comment, I deleted the 2nd.
I'm sorry I do not clearly understand the last part of your question.


SSL/TLS error in LiveOptionChainProvider

Expected Behavior
No error should be thrown when calling the GetOptionContractList method.
Actual Behavior
When calling GetOptionContractList method this error is thrown:

Mono:
System.Net.WebException: Error: SecureChannelFailure (The authentication or decryption has failed.)
Windows:
System.Net.WebException : The request was aborted: Could not create SSL/TLS secure channel.

Potential Solution
The LiveOptionChainProvider fetches the option chain information from the OCC website.
Apparently, it seems they upgraded the security protocol in their web server and our web request is failing, at least TLS 1.1 is now required and NET 4.5.2 does not have it enabled by default.
Reproducing the Problem
This unit test is now failing on current master branch:
        [Test]
        public void LiveOptionChainProviderReturnsData()
        {
            var provider = new LiveOptionChainProvider();
            var result = provider.GetOptionContractList(Symbols.AAPL, DateTime.Today);

            Assert.IsTrue(result.Any());
        }

System Information
NET 4.5.2 and Mono in QC cloud
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues
[x] I have provided detailed steps to reproduce the issue

Reopening this issue because the problem persists in the QC cloud (Mono) and needs further investigation.
This test confirms that the OCC web server only supports TLS 1.1 and TLS 1.2:
https://www.ssllabs.com/ssltest/analyze.html?d=www.theocc.com

Closed by #1968


Update ONNX python backend tests

Note: depends on #2121, until marked as Draft
This PR enables (almost) all tests with onnx.
There were previosly skipped test that are actually implemented already. And there are unsupported operators, which are needed to be disabled.


base64 encode for bytes data in abi

Codecov Report

Merging #80 into release-rc4 will decrease coverage by 0.58%.
The diff coverage is 22.04%.

@@                Coverage Diff                @@
##             release-rc4      #80      +/-   ##
=================================================
- Coverage          36.39%   35.80%   -0.59%
+ Complexity           359      355       -4
=================================================
  Files                 49       49
  Lines               3704     3773      +69
  Branches             327      332       +5
=================================================
+ Hits                1348     1351       +3
- Misses              2262     2331      +69
+ Partials              94       91       -3

Impacted Files
Coverage Δ
Complexity Δ

...nk/wecross/stub/bcos/contract/FunctionUtility.java
40.00% <0.00%> (-15.39%)
16.00 <0.00> (ø)

.../java/com/webank/wecross/stub/bcos/BCOSDriver.java
20.10% <20.73%> (+0.42%)
32.00 <0.00> (+1.00)

...ank/wecross/stub/bcos/abi/ABICodecJsonWrapper.java
39.81% <42.85%> (-5.14%)
28.00 <0.00> (-6.00)

...a/com/webank/wecross/stub/bcos/BCOSConnection.java
66.01% <100.00%> (ø)
25.00 <0.00> (ø)

...om/webank/wecross/stub/bcos/abi/ABIDefinition.java
58.47% <100.00%> (ø)
25.00 <0.00> (ø)

.../stub/bcos/protocol/request/TransactionParams.java
100.00% <100.00%> (+4.54%)
13.00 <2.00> (+2.00)

...va/com/webank/wecross/stub/bcos/abi/ABIObject.java
78.55% <0.00%> (-0.29%)
92.00% <0.00%> (-1.00%)

Continue to review full report at Codecov.

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


fix for xunit 2.1

#271

@bradwilson if you have a moment, I'd appreciate your opinion on this.
Key points:

I've upped the dependency on xunit from [2.0.0,3) to [2.1.0,3) on the basis that, effectively, there is a bug in xbehave 2.0 (cannot upgrade to later versions of xunit) which can only be fixed by a move to xunit 2.1. I guess it may be back compatible with xunit 2.0 (I'm not sure if the double assembly inclusions via the reference and props would clash with each other) but IMHO the ROI of validating that isn't worth it.
I've removed the use of props entirely, since xbehave currently only supports net45. I noticed that in xunit you are still providing dummy _._ build files for TFN's which don't need them but I presume this is purely due to the presence of real files for some of the TFNs. In the case of xbehave no build files are currently required. The next minor release of xbehave which will introduce the same TFN's as xunit 2.1 so I guess I will have to re-introduce the build folder, but until then YAGNI. As far as you know, will the removal and reintroduction cause any problem in the upgrade path?

I've upped the dependency on xunit from [2.0.0,3) to [2.1.0,3) on the basis that, effectively, there is a bug in xbehave 2.0 (cannot upgrade to later versions of xunit) which can only be fixed by a move to xunit 2.1.

You can use the 2.1 runners to run 2.0 code (and 1.x code). They are intended to be independent, and our manual test suite does verify that.
That said, so long as your users don't mind, I think upgrading to the 2.1 framework is beneficial, given the number of bugs and performance issues we've resolved.

I've removed the use of props entirely, since xbehave currently only supports net45. I noticed that in xunit you are still providing dummy . build files for TFN's which don't need them but I presume this is purely due to the presence of real files for some of the TFNs.

Which NUSPEC file(s) in particular do you mean? We have several. :-p I'm happy to review what you have and answer questions about why we do what we do.

Okay, I went back and looked and this is all we still have in 2.1 for props files:
https://github.com/xunit/xunit/blob/fe8d78df7cfec55ddab93c29ea96b0032ca998a8/src/xunit.core.nuspec#L78-L87
The reason those exist is for the three platforms that we support with the Visual Studio runner. In addition to getting a copy of xunit.execution.dotnet.dll (as befits the target platform), it also ensures that the user gets an additional (unlinked) copy of xunit.execution.desktop.dll. The reason for that is that all unit test discovery (for the UI) is done with the desktop CLR. We have to load the user's unit tests into the desktop CLR and discover against them, with the desktop DLL (because we also must have app domain support, to prevent the DLL from being locked).
I wouldn't think you would need to duplicate this. If your users are already linking against the xunit.core NuGet package, they're already getting the desktop DLL copy they need.

@bradwilson thanks for the valuable input.
I pretty much figured out what you were doing with the props files but it's good to get confirmation.
I think I'll stick with linking xbehave 2.0.1 against xunit 2.1. I wasn't so much worried about the runners (I guessed that you'd probably ensured 2.1 runners are fine with 2.0), it was more to do with the fact that, if xbehave 2.0.1 was linked to xunit 2.0, xunit.execution.desktop would be copied to the output directory by two mechanisms; the reference in xbehave, and the props from xunit. It probably would work just fine, but I don't want to temp fate, given the various vesions of VS and NuGet out there in the wild. :worried:
I'll push this out as a beta and ask the issue reporter to test the upgrade path.

Replaced by #274


Update windows-autopatch-faq.yml for better translation

The french translation is very confusing , i adjust to have a clear explantion in every language

Why

Closes #[Issue Number]

Changes

Thank you @BasileJoly for the contribution and catching that issue with the translation. I can see it's also mistranslated in Spanish, but the German seems to be ok. So I'm going to file a bug to our localization team and let them take a deeper look. I'll close this pull request.

for my own future searchability: bug ID 835955


Clicking on a menu item that has submenus should not close the popup menu

This is important for our automation testing procedures.
For example, on a menu bar menu item you can click on a menu item in order to select it (instead of hovering), and that gets the submenu to popup.
In this tool the whole popup menu closes on clicking an entry, even if the entry is just the parent ofr submenus.

I also found this issue when moving from the old Vaadin 7 context menu addon. Users less familiar with menus and submenus might click the menu item with submenus, causing everything to close.


Add tool to auto-configure OculusProjectConfig

Overview
Updated documentation and code to automatically configure the OculusProjectConfig for hand + keyboard support on quest
Previously we asked users to manually change the Oculus Project Config to enable hand support. It turned out we needed to also manually enable on-screen keyboard support. This PR streamlines the process and configures both using an in-editor tool. The documentation and associated images have also been updated accordingly.
Changes

Fixes: ##8792

Verification

This optional section is a place where you can detail the specific type of verification
you want from reviewers. For example, if you want reviewers to checkout the PR locally
and validate the functionality of specific scenarios, provide instructions
on the specific scenarios and what you want verified.
If there are specific areas of concern or question feel free to highlight them here so
that reviewers can watch out for those issues.
As a reviewer, it is possible to check out this change locally by using the following
commands (substituting {PR_ID} with the ID of this pull request):
git fetch origin pull/{PR_ID}/head:name_of_local_branch
git checkout name_of_local_branch

/azp run

/azp run


FS2 0.10: Make *Builder.apply work with custom arguments

This was broken with the addition of implicit arguments to the builders with default arguments.
Should be merged after #1258

This doesn't work at all, I guess I tested a different branch before pushing.

So, my motivation for this was that with parameterization, the following won't work in the current incarnation, due to the implicit type class:
BlazeBuilder[IO](executionContext = customEC).serve

(due to the whole reason this stuff was changed to begin with; one of the default arguments has a type parameter of F)
It would work as
BlazeBuilder[IO].withExecutionContext(customEC).server

It is a change to the user facing API, but having purely a builder syntax seems reasonable to me.


How do I register custom cell for reuse?

I do it like this:
newCalendarView.register(MonthPlanCollectionViewCell2.classForCoder(), forCellReuseIdentifier: "a")

but it doesnt work.
This is my xib file:

Hi, any way to load custom cell from nib?

@kunass2 @kushal211  Hey! Did you have any luck with custom cells? thnx

Did anybody figure this out?

i had the same problem. Solved it using this:
calendar.collectionView.register(UINib(nibName: "MyCell", bundle: nil), forCellWithReuseIdentifier: "cell")


fix: log files packed in archive

Description of change
This PR adds info level log for each file added to the archive. Users will be able to see these logs if they set the appropriate level in the RUST_LOG env var. E.g. RUST_LOG=cargo_shuttle=info.
closes issue #930 .
How Has This Been Tested (if applicable)?
Ran the cargo shuttle deploy command locally.

Should we better use debug instead of info?

@hseeberger I agree. I think it should be either debug or trace. Currently most logging in cargo-shuttle is at the trace level. We were having a discussion about it in #930 @jonaro00 what do you think?

Debug is fine

@iulianbarbu It can definitely be the case that enough users want this as a feature, but thus far it has only been relevant for debugging "did this file get deployed" issues.
It is a nice transparency tool for the docs FAQ, aka "Run RUST_LOG="..." cargo shuttle deploy to see exactly which files are uploaded".
I say we include it as is. The future will tell if it needs to upgrade to a more "official" feature.

I agree with @jonaro00. For now this PR can be merged. A --verbose flag can be added later if required.


How can I share my WPP configs and Updates?

Hi,
I would like to share my updates with my colleagues, is that possible?
Are there some planes to integrate GIT to archive the workspace?
Thx Marcel

Hi MarcelHillmann, that’s not very easy. The only way I see is to have the WSUS server of your colleagues be a downstream server of yours. In this case, the downstream server must trust the code-signing certificate use to sign the CAB files.

Hi,
sorry that was a misunderstanding.
We working both on the same WSUS server but with different Windows Profiles.
I couldn’t see his workspace meta data.
thx Marcel

What do you mean by workspace metadata?
If from one WPP instance you don’t see updates that have been published by the other instance, be sure to have the «Show Locally-Published updates that are also visible in WSUS console» checked in Tools -> Settings -> Updates

Hi,
what I mein is That you Store everything to „ System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments, Environment.SpecialFolderOption.None)“
Is it possible to use a alternative path?
We would like to see the Update Definition on the same Server from each other.
thx Marcel

Hi MarcellHillmann, I’m surprised because WPP doesn’t store anything in the «My Documents» folder. Can you share a screenshot of what you are seeing from WPP in that folder?
Thanks.


fix(ChatbotAlert): Fix layout

With recent layout refactoring, the alert no longer had the padding it used to have. I rolled it into a component and made it sticky so we can take advantage of where the padding lives now.

Preview: https://virtual-assistant-pr-virtual-assistant-186.surge.sh


Add compatibility to 1.20.5

Hi. today was released MC 1.20.5, so we wait for add compatibility. Modifying fabric.mod.json it works.
Regards.

Modrinth: https://modrinth.com/mod/better-ping-display-fabric/version/1.20.5-1.1.1
CurseForge: https://www.curseforge.com/minecraft/mc-mods/better-ping-display-fabric/files/5325435


Fix ci formatter

We have apparently not pushed to this repo for a long time. The way we ran rustfmt was old and broken. Updating to use the same approach we use elsewhere. And then also ran the newer formatter.
Also added automatic testing for the oldest version we support. Which currently is 1.26 due to ipnetwork 0.13 requiring 128 bit integers.

This change is

I hope I won't be stuck rebasing my code for ages...

Reviewed 14 of 14 files at r1.
Review status: :shipit: complete! all files reviewed, all discussions resolved

Comments from Reviewable

Review status: :shipit: complete! all files reviewed, all discussions resolved

Comments from Reviewable


Modifying the list doesn't re-render

I have a list like this:
    <vddl-list
      :list="a"
      :allowed-types="['a']"
      :horizontal="false">

      <vddl-draggable v-for="(item, index) in a" :key="index"
        :draggable="item"
        :index="index"
        :wrapper="a"
        type="mytype"
        effect-allowed="move">

asdasd

      </vddl-draggable>

      <vddl-placeholder>

      </vddl-placeholder>
    </vddl-list>

a = [1]

If I modify the array a.push(2), the list doesn't update. I can see the Vue dashboard to properly update and add the components

but the actual view stays the same. I think this is because we're modifying the DOM and adding the placeholder component, and vue.js loses track of the elements

Weird, wrapping the v-for in a div works:
   <vddl-list
      :list="a"
      :allowed-types="['a']"
      :horizontal="false">

      <vddl-draggable v-for="(item, index) in a" :key="index"
        :draggable="item"
        :index="index"
        :wrapper="a"
        type="mytype"
        effect-allowed="move">

asdasd

      </vddl-draggable>

      <vddl-placeholder>

      </vddl-placeholder>
    </vddl-list>

@archSeer I am sorry for late reply.
Has your problem been solved? I tried your description and it is OK.

@hejianxian It wasn't working correctly.  Vuejs would lose track of the elements since the placeholder inserting would mess with the DOM. What I did is rewrote the vddl-list component to stop changing the DOM and just store an index, then use a render function. I can provide a PR; might help with #3

This is what I have so far: https://gist.github.com/archSeer/8529c45c5b76e564c53eb4f48524f623

I have the same issue. It's really weird. There must be a bug anywhere in this library.

As I described, the official component changes the DOM so vuejs loses track
of the v-for elements. Using my component above works :) it's vddl-list but
edited to use render() instead of template
On Sat, 17 Mar 2018 at 05:01, pSchaub<EMAIL_ADDRESS>wrote:

I have the same issue. It's really weird. There must be a bug anywhere in
this library.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hejianxian/vddl/issues/35#issuecomment-373828839, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABTy9m8HQhDBTkAhe6_oenmmgF8nKo8lks5tfBoIgaJpZM4Sp1TN
.

@archSeer Please provide a PR. This DOM-manipulation really destroys the functionality of vddl - this needs to be done in the correct way as you described.

Wrapping it in a div worked for me as well. But this really should be fixed as part of the package.

I have this problem after updating to the latest version of the package.
Removing the placeholder tag, solves the rerendering problem, but that of course causes new problems.


Strange miscoloration when login using ssh inside tmux

I don't understand this. This only shows when ssh-ing to another host using ssh inside tmux.
SSH outside of tmux:

SSH inside tmux:

Anyone else seen this, and maybe found a solution?
Come to think of it, it might be a tmux 3.5 beta issue...
macOS 14.6.1
iTerm2 3.5.4
zsh 5.9 (arm-apple-darwin21.3.0)
tmux next-3.5

Hmm, apparently this only happens if I ssh from an already running tmux window, if I use prefix :new-window -n remote-host 'ssh remote-host' this doesn't happen...


DM-43583: Add N999 to example ruff config

I forgot about this PR on the other ticket: just a one line change to our ruff guidelines.


Ignore option

Sometimes an output bundle is designed to be a dependency, not final destination, and that would be useful to keep some its deps not packed, to share them with adjacent modules. Or the case of optional dependencies, included only if they are required by the adjacent modules.
With rollup-plugin-commonjs there is ‘ignore’ option for that.
Is there any plan to include that for ncc?

Is the current -e not good enough for this?

Bah, should've read more carefully. Thanks.


ATS resource lost

I found ATS resource lost on the below situation with version 7.1.4.

use bare disk.
configure proxy.config.cache.min_average_object_size to 8000.(default value)
push a resource.
wait for one minute to make sure dir sync is done.( I use the default value for dir sync)
reboot ATS.
after that, I found that I resource I pushed was lost. And after I modified proxy.config.cache.min_average_object_size big enough,such as 512000, repeat the steps, the resource would not lost. Here is a operation record(I write a plugin when there's no resource, just return 404):

icache@S_HCS_114:~/ats-ssd/bin> telnet <IP_ADDRESS> 2503
Trying <IP_ADDRESS>...
Connected to <IP_ADDRESS>.
Escape character is '^]'.
PUSH http://www.hkfgzac.com/13a31 HTTP/1.0
Content-length: 116
HTTP/1.1 200 OK
Content-type: text/html
Cache-Control: max-age=999
Content-length: 23

ddddxx

HTTP/1.0 201 Created
Date: Fri, 01 Mar 2019 06:42:57 GMT
Server: ATS/7.1.4
Content-Length: 0
Connection closed by foreign host.
icache@S_HCS_114:~/ats-ssd/bin> date
Fri Mar  1 14:44:49 CST 2019
icache@S_HCS_114:~/ats-ssd/bin> ./trafficserver restart
Stopping traffic_cop                                                                                done
Stopping traffic_manager                                                                                done
Stopping traffic_server                                                                                done
Starting Apache Traffic Server                                                                                done
icache@S_HCS_114:~/ats-ssd/bin>
icache@S_HCS_114:~/ats-ssd/bin> date
Fri Mar  1 14:45:06 CST 2019
icache@S_HCS_114:~/ats-ssd/bin> curl -x <IP_ADDRESS>:2553 http://www.hkfgzac.com/13a31  -v

About to connect() to proxy <IP_ADDRESS> port 2553 (#0)
Trying <IP_ADDRESS>... connected
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 2553 (#0)

GET http://www.hkfgzac.com/13a31 HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-suse-linux-gnu) libcurl/7.19.7 OpenSSL/1.0.1g zlib/1.2.7 libidn/1.10
Host: www.hkfgzac.com
Accept: /
Proxy-Connection: Keep-Alive

< HTTP/1.1 404 Not Found
< Date: Fri, 01 Mar 2019 06:45:36 GMT

HTTP/1.1 proxy connection set close!
< Proxy-Connection: close
< Server: ATS/7.1.4
< Content-Length: 0
<
Closing connection #0
icache@S_HCS_114:~/ats-ssd/bin>

Any one know why?

I used a 800G ssd disk.

I found the reason. This is not a issue. I enabled the debug and find the sync done time was nearly 4 minute. And I restarted the ATS before sync was done.


[DOCS]: adding badges to readme.md file

I can add badges to the readme.md file
pls assign me this issue under GSSoC'23 label
@thestarsahil

Great job assigning the issue to the user @AmanSingh6574 ! The badges in the readme.md file will be a valuable addition to the project. It will help showcase important information and achievements related to the project, making it more informative and visually appealing for visitors. Keep up the good work in managing the project and addressing user requests. If you have any questions or need further assistance, feel free to reach out. Happy coding!

can u assign me this isssue

@AmanSingh6574 Join discord group for further discussion with collaborators, project admin and mentors.
For joining the group:

Go to the Gssoc'23 discord channel.
Go to FORUM category.
In PROJECTS-INTRO you will get the project listed.
Join the project discord channel.

Also join the Slack Channel!!

@thestarsahil  pls add level to the pr


[Bug] Can "receive" new_webcash twice

If you receive webcash, the "Send" tab shows the newly issued webcash as new_webcash.
The wallet allows the user to copy it and receive it again which shouldn't be possible. It is then falsely reflected in the balance. From there on, the user can't send any more webcash since the wallet now presumably has a bad state.
Reproduce:

Have x webcash
Send 1 webcash (Balance: x-1)
Receive that 1 webcash (Balance: x)
Copy new_webcash and receive it
Balance: x+1

†

Thanks for the bug report! It is fixed now.
Explanation:
The balance correctly decreases when you use the "Send" function. "Send" is how the wallet knows that you're taking a secret out of it, so it knows to decrease the balance. However, if instead of using "Send", you grab the new webcash directly from the wallet and then use "Receive" to insert it back in, the wallet gets confused because it assumes that secret came from somewhere else.
I fixed this in two ways:

When inserting a secret via "Receive", do not show the new secret to the user to avoid confusion.
If the user still tries to insert a secret that's already in the wallet, show an error.


kubeadm GA blog post

/cc @fabriziopandini @neolit123 @roberthbailey
/assign @kbarnard10 @lucperkins @timothysc
You can see a preview of the post in progress here:
https://deploy-preview-11462--kubernetes-io-master-staging.netlify.com/blog/2018/12/05/production-ready-kubernetes-cluster-creation-with-kubeadm/

@luxas I hijacked your branch and pushed some changes directly to the PR. Hope that's okay! Mostly I added proper formatting for the blog (page metadata), fixed the CSS for tables in blog posts, and addresses some issues pointed out by commenters.

@luxas I hijacked your branch and pushed some changes directly to the PR. Hope that's okay! Mostly I added proper formatting for the blog (page metadata), fixed the CSS for tables in blog posts, and addresses some issues pointed out by commenters.

Thanks super okay :100:, thank you for doing it! Feel free to continue copyediting as you see fit until we merge this tomorrow (4th of Dec, as decided with @kbarnard10 earlier)

/hold


Cannot build

Hi,
I tried building... multiple times. Each failed. Once on Mac OS X (10.10.2), another trial on a Nitrous box (Ubuntu 12.04.5 LTS), another on a Digital Ocean Droplet (Ubuntu 14.04 x64).
I thoroughly ran through the installation instructions:
Install Node.js
Install the Grunt - run npm install -g grunt-cli
Clone the 'player' repository
On the command line, go in to the 'player' folder
Run git submodule init
Run git submodule update
Run npm install
grunt build ...
Hopefully, you can help. Thanks!
View Error From the Digital Ocean Droplet
Gist: Wellcome Player Error

Hi,
I just tried a clean clone and install and it worked, but it looks like you're on tsc v1.0.1 whereas I'm currently using v1.0.3.
Try doing a npm install -g typescript to get the latest version of the typescript compiler.
Also, you may want to check out the Universal Viewer which is a related project and represents the current "state of the art". Please note however that the UV uses the standardised IIIF image and presentation protocols, rather than the Deepzoom DZI image protocol and "hand-rolled" presentation format that the Wellcome Player uses.

Thanks Edward. I'll try installing typescript globally and let you know how that goes. Thanks for pointing me to the Universal Viewer. I'll surely check it out.
Stay tuned...

OK... updated typescript:
me@player:~/player$ pwd
/home/me/player

me@player:~/player$ npm list -g --depth=0
/usr/local/lib
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
me@player:~/player$ npm list --depth=0
<EMAIL_ADDRESS>/home/me/player
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
It keeps reporting that it's using tsc v1.0.1:
### Fast Compile >>src/modules/coreplayer-treeviewleftpanel-module/treeViewLeftPanel.ts
### Fast Compile >>src/utils.ts
Using tsc v1.0.1
/home/ghalusa/player/node_modules/grunt-ts/node_modules/typescript/bin/tsc.js:906
                        vector.release();

Could it be because during the install, it's looking for node.js v0.8? (I'm running the latest: 0.12.1)
me@player:~/player$ npm install
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":"~0.8 || ~0.10"} (current: {"node":"0.12.1","npm":"2.5.1"})
npm WARN optional dep failed, continuing<EMAIL_ADDRESS>
For what it's worth, I did clear npm's cache using:
npm cache clean

I upgraded from node v0.8 to v0.12.2, this yielded the same build error that you're seeing. I then updated grunt-ts to v4.0.1 in package.json and did an npm install.
This fixed the current error, but I'm now unable to build the dependencies.ts files due to A 'return' statement can only be used within a function body. errors.
I remember seeing these before and it's what originally prevented me from upgrading node. I need to figure out an alternate method of loading the dependencies - probably using requirejs text:
https://github.com/requirejs/text
I'll have a look at doing this and will let you know if I get it working. In the meantime, the only option is to downgrade to node v0.8

https://github.com/wellcomelibrary/player/commit/2735e800562fe79999e37eea811e8ac527642641
It should now build with node v0.12.2 and ts v4.0.1. You'll need to do an npm install after pulling.

FYI this is also implemented on the UV: https://github.com/UniversalViewer/universalviewer/commit/7649a07b4d69e8644e8ce54dc3e8c68ac0d9e974

Hey...
So, I tried again, from scratch. Ran into issues... looked like the same outcome for both Wellcome Player and Universal Player.
Look, I completely understand if this is a bit too much. If you're super busy, it's ok...
But, for the record, and for what it's worth, I posted a Gist, detailing the entire process, from start to finish... including a screenshot of the error produced in Google Chrome:
https://gist.github.com/ghalusa/0b2b1bb5e51e6b2795ff

The build looks ok now.
The IP for localhost in your example looks unusual. When I run serve it uses the localhost host name, which resolves to ::1 or <IP_ADDRESS>. Perhaps you need to add an entry to your hosts file?
Failing that, it could be something to do with the combination of grunt-contrib-connect settings on your system. I had to fiddle with this section of the Gruntfile.js quite a bit:
    connect: {
        dev: {
            options: {
                port: '<%= global.port %>',
                base: '.',
                directory: '.',
                keepalive: true,
                open: {
                    target: 'http://localhost:<%= global.port %>/<%= global.examplesDir %>/'
                }
            }
        }
    }

It's a bit of a stab in the dark, but you could try changing base to __dirname:
http://stackoverflow.com/questions/20914005/grunt-403-forbidden-error
Failing that, you could try serving the files with the trusty http-server:
https://www.npmjs.com/package/http-server

My /etc/hosts
<IP_ADDRESS> localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Gruntfile.js
Tried to fiddle with it, no change.
__dirname
Tried changing base to __dirname, no change.
http-server
Tried, no change.
My Environment

Digital Ocean Droplet
Ubuntu 14.04 x64
I cloned the repository into my home folder (/home/ghalusa)

Your Environment?

What are you running?
Perhaps that's a factor?

I'm running Windows 8.1
I don't have anything set in my hosts file.
Perhaps it's worth trying to get a 'hello world' type application working first with grunt-contrib-connect?

Ah... Windows. Good to know.
Indeed... a 'hello world' type application with grunt-contrib-connect would be a great place to start. I'll do that, and let you know how things pan out.
Thanks for all of your help... greatly appreciated.

No probs! :-)

Edward,
Good news! I finally have a clean running instance of the Wellcome Player!
Digital Ocean - Ubuntu 14.04 x64
http://spirls.com:8001/
I started with the "hello world" test with grunt-contrib-connect. Everything went smoothly.
So...
Remember, or perhaps not... either way... I mentioned the "error produced in Google Chrome"? I provided the screenshot, depicting the fact that it couldn't find "examples-config.js".
Well, it got me thinking. I figured that's what the "Error: Forbidden" was all about. At that point, I decided to modify the Gruntfile.js file, explicitly assigning the "examples" directory to the "connect.dev.options" (as opposed to '.'). And... BAM! Done deal.
global config
global:
{
    buildDir: 'build/wellcomeplayer',
    minify: 'optimize=none',
    packageDirName: packageDirName,
    packageDir: 'build/' + packageDirName,
    examplesDir: 'examples',
    theme: 'coreplayer-default-theme',
    port: '8001',
    base: 'examples'
},

connect.dev.options
connect: {
    dev: {
        options: {
            port: '<%= global.port %>',
            hostname: '*',
            directory: '.',
            base: '<%= global.base %>',
            keepalive: true,
            open: true
        }
    }
}

Awesome, glad you got it working!
On 9 April 2015 at 21:42, Goran Halusa<EMAIL_ADDRESS>wrote:

Edward,
Good news! I finally have a clean running instance of the Wellcome Player!
Digital Ocean - Ubuntu 14.04 x64
http://spirls.com:8001/
I started with the "hello world" test with grunt-contrib-connect.
Everything went smoothly.
So...
Remember, or perhaps not... either way... I mentioned the "error produced
in Google Chrome"? I provided the screenshot
https://camo.githubusercontent.com/cee9e24cdbb95ed620671dcb1f743b868c603276/687474703a2f2f68616c7573616e6174696f6e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30332f676f6f676c655f6368726f6d655f636f736f6c655f77656c6c636f6d652e706e67,
depicting the fact that it couldn't find "examples-config.js".
Well, it got me thinking. I figured that's what the "Error: Forbidden" was
all about. At that point, I decided to modify the Gruntfile.js file,
explicitly assigning the "examples" directory to the "connect.dev.options"
(as opposed to '.'). And... BAM! Done deal.
global config
global:
{
buildDir: 'build/wellcomeplayer',
minify: 'optimize=none',
packageDirName: packageDirName,
packageDir: 'build/' + packageDirName,
examplesDir: 'examples',
theme: 'coreplayer-default-theme',
port: '8001',
base: 'examples'
},
connect.dev.options
connect: {
dev: {
options: {
port: '<%= global.port %>',
hostname: '*',
directory: '.',
base: '<%= global.base %>',
keepalive: true,
open: true
}
}
}
—
Reply to this email directly or view it on GitHub
https://github.com/wellcomelibrary/player/issues/2#issuecomment-91350948
.

I tried this setting on my environment and got "forbidden" errors. Ideally everyone would be able to use the same settings regardless of environment. I then tried removing the base and directory options from connect and it worked without them..! Perhaps I originally needed these and a more recent update to connect has fixed something..? Anyway, could you see what happens if you remove them too?

OK. I removed the base and directory options. The console in Google Chrome dev tools returned:
GET http://spirls.com:8001/examples-config.js 404 (Not Found)  --  app.js:13

BTW, here is npm list:
me@me:~/player$ npm list --depth=0
<EMAIL_ADDRESS>/home/me/player
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>extraneous
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

Yep, we're on the same version of grunt-contrib-connect.
Ok, looks like we'll have to use different configs.

Weird. There must be a solution. I'm going to be doing some implementation with some of our content. If I happen to have an ah-ha moment, I will surely let you know :)
At least its high up in the food chain, at the config level. But, like you, I'm not wild about it either.

Yeah, a bit sub-optimal, but at least everything else seems to work..!
I've just pushed a fix for a bug that I introduced with the build process when I altered the way the dependencies files work. This is also pushed to the UV.
There's currently a trade-off between the Wellcome Player and the Universal Viewer. The Wellcome Player has support for OpenSeadragon, audio, video, and PDF extensions, whereas the UV only supports OpenSeadragon due to the (current) limitations of the IIIF presentation API.
The Wellcome Player uses a "hand-rolled" format of our own devising:
http://player.digirati.co.uk/data-model.html
which predates, but isn't actually a million miles from the IIIF presentation API:
http://iiif.io/api/presentation/2.0/
In some work for the British Library, we ported the Wellcome Player to work with IIIF and subsequently added more features such as right-to-left manifest support, an expanded thumbnail view, a settings dialogue, and internationalisation.
We are currently endeavoring to upgrade the Wellcome Library's systems to IIIF. Although the legacy player will still be needed to view audio, video, and PDF content for the time being.
I think that IIIF support for other types of collections may be on the agenda at the conference in May.
Looking forward to seeing your content!

Thanks for the extensive overview. All good to know. And... as always, thanks for your time and impressive work.
BTW, you should know... I just went ahead and reinstalled, built, and tested the Universal Viewer. It went smooth as silk. No alterations to the config. No errors. Sweet!
We will be at the conference in May. It will be great to touch base!

Hooray!
Yep, we should definitely meet up. Do you know about the developer round table the day before the main event?
http://www.eventbrite.com/e/iiif-technical-working-session-tickets-16158912743
It's sold out now unfortunately. Maybe (if you haven't already got a ticket) someone will drop out and a space will become available. Worth keeping an eye on.
BTW, the Wellcome Player also supports search within and authentication/authorisation. I'm working on search within support for the UV right now, but this isn't an approved feature in the IIIF spec yet. We're hoping to be able to demo search within around the time of the conference using our own IIIF extension.
https://groups.google.com/forum/#!topic/iiif-discuss/oI4HZznBa90
Authorisation is currently a topic of some debate too:
https://gist.github.com/tomcrane/3a2301058615ddf9dbee

No, I wasn't aware of the developer round table. Thanks for the heads-up. I'll keep my eye on that for openings.
Looking forward to learning more about the search capabilities... good stuff!
Just so you are aware, I just started working for Quotient, under the Smithsonian contract, less than 2 months ago. That is to say, I'm still quite green in this specific realm, but plowing through things day to day. Some of what you throw at me may take me a bit to digest :)

Closing. Ancient history.


Quick Launch Projects

Issue Type: Feature Request
Is it difficult to add right-click context menu of taskbar icon to list recent project folders (or if it is easier, projects which I pin to that context menu). Because when I launch from there, it opens last project, then I need to close it then select another project. This is needless I/O to disk and loss of time (5-10 seconds but when counted for year, it is so much probably) Another method is navigating to folder then right click to folder, "open with vscode" but this is also loss of time and many clicks.
Thanks for reading.
VS Code version: Code 1.60.2 (7f6ab5485bbc008386c4386d08766667e155244e, 2021-09-22T12:00:31.514Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

Hello Tyler,
There's no issues, actually this was a feature request which maybe helpful to everyone using VSCode.
When I close all editors and folders, there's a "Recent" list as seen on screenshot. Also bottom part of screenshot there's there's windows taskbar icon right-click context menu which currently shows on the list "Tasks -> New Window". There maybe same "Recent" list on the taskbar icon right-click context menu.

@sbatten would this be yours to own?

@sbatten, actually it is a feature request, just something extra feature to ease things out. Right click of taskbar icon can include pinned projects or recent projects. BTW, I just noticed that if I click "New Window" from taskbar right-click menu, vscode opens with that options at screenshot. I wasn't knowing that feature and I was left clicking then struggling to find my other projects. Now, just one-click to find my recent work by clicking "New Window". So this task can be closed if you want, or if you liked the idea and if we think that it will be helpful to other people, then I'd appreciate if it's implemented :( I'm sorry for taking your time

I searched for it for half an hour, meanwhile found so many duplicate issues.. There should be easier way of doing this, just from file menu -> Pin to taskbar or someting.
Here's how I succeeded.
First, saved workspace to a file, then dragged that filename.code-workspace to taskbar icon

It is Windows 11 and I am using the insiders version of VS Code, however the feature has been around for some time. I believe you either are experiencing a bug or have some special condition around your pinned version of code. Perhaps you can unpin code, launch it again, and re-pin.