External user can’t create VM on Azure from Shared Image Gallery

I’ve created a shared image gallery and populated it with image definitions and image versions. I then shared it with an external user (following these instructions).

Logging in as that external user I get an email about the shared image gallery with the link. I click the link and I can see the shared image gallery, I can see the image definitions and I can see the image versions. I can then click the create VM link and at that point I’m asked for the details to create a VM – but the subscription field is locked to the subscription that created the shared image gallery, not my external account’s subscription. The resource group is empty but if I try to create one, it refuses to let me create on in the shared image gallery owner’s subscription (which is fair enough).

What do I need to do to allow an external user to launch a VM from my shared image gallery?

How can I ensure only one instance of a micro-service queries a database and downloads files to shared storage at a time?

I have a micro-service that sends files to clients on request.
It acquires these files by querying a database where other users have saved details of the file.
The micro-service queries the database periodically, if there is a new file(s) it contacts artifactory and downloads the file to a shared storage that all instances of the micro-service use.
How can I ensure that only one instance queries and downloads files at a time?

Multithreaded parameterized programs with superexponential shared memory size in the number of threads?

In this question, a program means a parameterized multithreaded program with the interleaving semantics, a finite number of per-thread states (which may depend on the number of threads), and finite number of shared states (which may depend on the number of threads).

A shared state is a valuation of the shared memory, and a per-thread (in other terminology, local) state is the valuation of thread-local memory (we assume no stack). Interleaving semantics means that the actions of the threads are interleaved on a single processor and a thread has rw-access to the shared memory and its own local memory and no access to the local memories of the other threads. Parameterized means that we conside a family of programs generated from a finite-desciption template such that the $ n$ th member of the family has $ n$ threads (which typically coincide up to the thread identifier).

To the best of my knowledge, for such a program, the size of the shared state-space is anywhere between constant (e.g., for a single boolean lock variable) and exponential (e.g., Peterson mutual exclusion protocol) in the number of the threads $ n$ .

Is there any well-known academic program in which the size of the shared state-space grows superexponentially in $ n$ ?

“Family” apps use shared passwords for different usernames. How bad is it?

There exist several “family” apps available for mobile devices that allow family things to be shared: shopping lists, calendars, occasionally device locations, that kind of thing. At least two of these apps (and if it’s at least two, I’m worried it’s all of them) use the highly interesting practice of requiring users part of the same “family” group to use the same password (different usernames, though).

The justification given by at least one of these apps is that the password is used to determine which group the user belongs to, but I’m a programmer and I’m pretty sure that explanation passed through the backside of a male cow. What I am not, however, is a security expert, and while I’m pretty sure that enforcing shared passwords is a bad idea, I can’t put into words why it’s a bad idea.

Migrate user mailbox calendar to public folder (shared calendar) in Exchange

We use Exchange 2016. A user shares his calendar with other users through Outlook (2010, 2013). To decouple this calendar from his mailbox and make it a shared calendar, we want to port it to a public folder preferably using PowerShell.

So far, we have exported (not even sure if this succeeded) the calendar with:

New-MailboxExportRequest -Mailbox a.user -IncludeFolders "#Calendar#" -FilePath \PST\user.pst 

How do we import the user.pst in to a public folder?

Linker error when building shared library on Mac

I’m trying to build a rust cdylib shared library on Mac, where some of the symbols are only defined in the host program that will eventually load it. I get a bunch of build errors about unresolved symbols, but the symbols should be unresolved at build time. If there is any unresolved symbol error it should happen at dlopen() time in the host program.

My crate builds and works fine on ubuntu with either gcc-7.4 or clang-6.0, but does not work on Mac.

extern "C" {     pub static mut unresolved_symbol: i32; }  #[export_name="some_func"] pub extern "C" fn some_func() {     unsafe {         println!("{}", unresolved_symbol);     } } 
[package] name = "sharedlib" version = "0.1.0" authors = ["Jeff Davis <jeff@j-davis.com>"] edition = "2018"  [lib] crate-type = ["cdylib"] 


$   cc --version Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin $   cargo build    Compiling sharedlib v0.1.0 (/Users/ABCWXYZ/code/rust/sharedlib) error: linking with `cc` failed: exit code: 1   |   = note: "cc" "-m64" "-L" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps/sharedlib.1fuvldog2z497idd.rcgu.o" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps/sharedlib.1qjfsnlmqnj43b7e.rcgu.o" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps/sharedlib.4t85wgccdhlen7ed.rcgu.o" "-o" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps/libsharedlib.dylib" "-Wl,-exported_symbols_list,/var/folders/yn/ps5k_p2j7_g7gfzdc_4jvqf80000gn/T/rustcONVtkx/list" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps/sharedlib.512ryopkdhq7yt5h.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/ABCWXYZ/code/rust/sharedlib/target/debug/deps" "-L" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-1dfdd87ff6e60945.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-2afa3d9ef23111d9.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libbacktrace_sys-36ad4a075c8befe6.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-5af683adadcc6add.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-11930efa977c702c.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-ebd54b7045c72e75.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-f9e1c7e0a4778297.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-06903edfb4cff5d5.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-9becee61e6692014.rlib" "/Users/ABCWXYZ/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-f3814eca990faded.rlib" "-lSystem" "-lresolv" "-lc" "-lm" "-dynamiclib" "-Wl,-dylib"   = note: Undefined symbols for architecture x86_64:             "_unresolved_symbol", referenced from:                 _some_func in sharedlib.1qjfsnlmqnj43b7e.rcgu.o           ld: symbol(s) not found for architecture x86_64           clang: error: linker command failed with exit code 1 (use -v to see invocation)   error: aborting due to previous error  error: Could not compile `sharedlib`.  To learn more, run the command again with --verbose.  

On ubuntu, it just builds and the library properly has the exported symbol and the unresolved symbol. I could load it into a host program that has the unresolved symbol defined.

Microservices – Are shared microservice between two different projects a deployment antipattern? [on hold]

Organisation I work for has a single production namespace of microservices A, B, C, D, E, F, G.

Project 1 uses microservices A, B, C, D.

Project 2 uses microservices D, E, F, G.

Therefore Projects 1 and 2 have microservice D in common.

Project 1 wants to update microservice D and considers it part of its project.

Project 2 does not want to update microservice D and considers it part of its project.

Organisation does not (and will not) organise its teams at the microservice level. Organisation will continue to spawn new projects and will consider existing microservices as potential building blocks in a global namespace which it can use as part of its solution (and which it will lay shared claim to the maintenance/release/deployment lifecycles thereof).

I’m sure this is a common enterprise deployment problem but I am struggling to find the vocabulary to describe it.

Is there a well known name for what I am trying to describe? Is this namespace approach a deployment anti-pattern?

My goals in asking this question are to go away with a searchable term so that I an research the problem in more detail and seek out alternative approaches.